假设一个字符串可以由字符a, b或c组成。
是否可以通过正则表达式按规则对字符串的字符进行分组-首先应用最严格的规则,然后是较弱的规则?
例如:- 优先级规则:识别在字符串中同时出现的"ba"。
- 所有剩下的字符将成为他们自己的组。
abbadaabad
这样的字符串将分组为:
a, b, ba, d, a, a, ba, d
我的想法是,一旦我可以建立一个两级规则集,我就可以创建一个更深入的规则集,其中包含更精细的规则。
在交替规则中,第一个匹配的表达式获胜。
如果找到ba
,该模式将匹配它,否则将匹配单个字符:
ba|.
在Python中的用法:
>>> from re import findall
>>> s = 'abbadaabad'
>>> findall(r'ba|.', s)
['a', 'b', 'ba', 'd', 'a', 'a', 'ba', 'd']