根据规则层次划分单词



假设一个字符串可以由字符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']

最新更新