我正在编写的这个程序收到一串不同大小的字符串和不同数量的括号,这些括号内容有不同大小的字符.
例如:wysextplwqpvipxdv [srzvtwbfzqtspxnethm] syqbzgtboxxzpwr
我希望能够将此字符串切片到包含不在括号中的所有部分的字符串的列表中.
例如:
list[0] = wysextplwqpvipxdv list[1] =syqbzgtboxxzpwr
我知道string.slice并且我已经读过这个:解释Python的切片符号
然而我在思考将其放入代码的方式时遇到了麻烦.
挑战是不知道有多少括号,还能够将字符串剪切到列表中.
用re.split
你的括号(非贪婪)的正则表达式:
import re s = "wysextplwqpvipxdv[srzvtwbfzqtspxnethm]syqbzgtboxxzpwr" toks = re.split("\[.*?\]",s) print(toks)
结果:
['wysextplwqpvipxdv', 'syqbzgtboxxzpwr']
警告:如果括号嵌套,则不起作用.pyparsing
在这种情况下,您必须使用更复杂的解析器.
编辑:在这种情况下,可以使用正则表达式进行嵌套管理,因为我们只考虑括号外的级别.正则表达式的一个新答案是将所有文本放在括号之外.