mystring = "q1)whatq2)whenq3)where"
想要["q1)what", "q2)when", "q3)where"]
我的方法是找到q\d+\)
模式然后移动,直到我再次找到这个模式并停止。但是我无法阻止。
我做了req_list = re.compile("q\d+\)[*]\q\d+\)").split(mystring)
但这会给整个字符串。 我该怎么办?
答案 0 :(得分:2)
您可以尝试以下使用re.findall
函数
>>> import re
>>> s = "q1)whatq2)whenq3)where"
>>> m = re.findall(r'q\d+\)(?:(?!q\d+).)*', s)
>>> m
['q1)what', 'q2)when', 'q3)where']
<强>解释强>
q\d+\)
匹配格式为q
后跟一个或多个数字的字符串,然后再加上)
符号。(?:(?!q\d+).)*
否定前瞻,匹配任何不属于q\d+
的字符零次或多次。