我正在阅读一本书,书中提供了一个关于如何使用正则表达式匹配给定字符串的例子。以下是他们的示例:
b*(abb*)*(a|∊) - Strings of a's and b's with no consecutive a's.
现在我已经尝试将其转换为Python,如下所示:
>> p = re.compile(r'b*(abb*)*(a|)') # OR
>> p = re.compile(r'b*(abb*)*(a|\b)')
# BUT it still doesn't work
>>> p.match('aa')
<_sre.SRE_Match object at 0x7fd9ad028c68>
我的问题有两个方面:
- 在Python中,如何相应地使用 epsilon 使上述示例起作用?
- 有人能够解释一下为什么理论或标准的正则表达式方法在Python中不起作用吗?这可能与最长匹配和最短匹配有关吗?
澄清:对于那些问什么是标准正则表达式的人 - 它是形式语言理论标准:http://en.wikipedia.org/wiki/Regular_expression#Formal_language_theory