实施例。 "史蒂夫&&克里斯||乔&&乔治"
Group[0] = steve && chris
Group[1] = joe && george
我可以找到第一组(。*?)([|] {2})但是如何找到下一组。
请记住,我希望它是动态的。字符串将以相同的模式增长。 对于Ex。
"steve && chris || joe && george || sep && geo"
答案 0 :(得分:3)
非正则表达式解决方案可以使用str.split
>>> s = "steve && chris || joe && george"
>>> tmp = s.split('||')
>>> groups = map(str.strip,tmp)
>>> groups
['steve && chris', 'joe && george']
它也是动态的
>>> s = "steve && chris || joe && george || sep && geo"
>>> tmp = s.split('||')
>>> groups = map(str.strip,tmp)
>>> groups
['steve && chris', 'joe && george', 'sep && geo']
请注意,基本字符串函数的运行速度比RegEx解决方案
快答案 1 :(得分:2)
也许最好的方法就是使用Python拆分功能:
s = 'steve && chris || joe && george'
s.split(' || ') # returns ['steve && chris', 'joe && george']
但是,要使用正则表达式,您可以执行以下操作:
import re
# group all strings separated by `|` and at least length 1
arr = re.findall('[^|]{1,}', "steve && chris || joe && george || sep && geo")
print(arr) # ['steve && chris ', ' joe && george ', ' sep && geo']
答案 2 :(得分:1)