根据规则的层次划分一个单词

时间:2011-11-25 21:52:32

标签: regex

假设一个字符串可以由字符a,b或c组成。

是否可以通过正则表达式按规则对字符串的字符进行分组 - 首先应用最多的严格规则,然后是较弱的规则?

例如:

  • 优先级规则:将“ba”标识为一起出现在字符串中。
  • 所有剩余的角色将是他们自己的群组。

因此,abbadaabad之类的字符串会分组到:

a,b,ba,d,a,a,ba,d

我的想法是,一旦我可以设置一个两级规则集,我就可以使用更精确的规则创建更深层的规则集。

1 个答案:

答案 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']
相关问题