學習正則表達式正變得越來越困難,請參閱下面的python正則表達式代碼片段。爲什麼這個正則表達式模式甚至匹配字符串中的一個額外字符?
>>> import re
>>> str = "demo"
>>> re.search("d?mo",str)
<_sre.SRE_Match object at 0x00B65330>
在上面的例子中,爲什麼它返回匹配的對象,即使它不是?
我知道,符號'?'意味着它將匹配前面的字符的0或1的重複,但
從上面的例子,
1.'d' is matched with 'd'
2.'m' is matched with 'm'
3.'o' is matched with 'o'
但隨着該字符「E」被匹配?根據我的理解,只有'dmo'或'mo'必須與給定的模式匹配,但爲什麼'演示'。
如果我只想匹配'dmo'或'mo',那麼正確的模式是什麼?
不要命名變量'str',因爲你會掩蓋內置的[str函數](https://docs.python.org/2/library/functions.html#str) – dawg