假设一个字符串可以由字符a,b或c组成。
是否可以通过正则表达式按规则对字符串的字符进行分组 - 首先应用最多的严格规则,然后是较弱的规则?
例如:
因此,abbadaabad
之类的字符串会分组到:
a,b,ba,d,a,a,ba,d
我的想法是,一旦我可以设置一个两级规则集,我就可以使用更精确的规则创建更深层的规则集。
答案 0 :(得分:6)
在alternation rule中,第一个匹配的表达式获胜。
如果找到此模式将匹配ba
,否则它将匹配单个字符:
ba|.
这是Python中的一个示例用法:
>>> from re import findall
>>> s = 'abbadaabad'
>>> findall(r'ba|.', s)
['a', 'b', 'ba', 'd', 'a', 'a', 'ba', 'd']