我正在閱讀一本書,它們提供瞭如何將給定字符串與正則表達式匹配的示例。 這裏是他們的榜樣:標準正則表達式與python正則表達式的差異
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
的例子的評論是錯誤的...正則表達式做了和b的不僅匹配字符串沒有一個連續的。我會用b + btw代替bb *。 – 2010-01-12 14:56:02
在這種情況下epsilon的預期行爲是什麼?我從來沒有見過,我已經編程了12年... – jathanism 2010-01-12 14:57:16
「標準」正則表達式?誰定義了這個標準? ANSI? ISO? IEEE?我的天啊? – 2010-01-12 15:14:32