python - 一個簡單的正則匹配問題
問題描述
In [33]: re.match(’ab*c’,’ab*cd’)Out[33]: <_sre.SRE_Match object; span=(0, 4), match=’ab*c’>
如上,沒想明白為什么能匹配到,我的匹配模式中不是使用’’將’’轉義成了字符串了嗎,為什么最后還能匹配到結果??謝謝!!
問題解答
回答1:Regular expressions use the backslash character (’’) to indicate special forms or to allow special characters to be used without invoking their special meaning. This collides with Python’s usage of the same character for the same purpose in string literals; for example, to match a literal backslash, one might have to write ’’ as the pattern string, because the regular expression must be , and each backslash must be expressed as inside a regular Python string literal.
其實也沒看懂你到底要匹配哪種模式,不過你的問題上面的應該可以解決。建議用raw string。
回答2:’ab*c’
這個規則在 compile 之后確實就是
’ab*c’ // 這里*表示匹配`*`這個字符
那么當然可以匹配目標字符串 ab*cd 中的 ab*c
回答3:不想匹配到就加個 r。
re.match(r’ab*c’,’ab*cd’)
相關文章:
1. javascript - 在 model里定義的 引用表模型時,model為undefined。2. css3 - 這個右下角折角用css怎么畫出來?3. javascript - canvas 裁剪空白區域4. atom開始輸入!然后按tab只有空格出現沒有html格式出現5. css3 - 沒明白盒子的height隨width的變化這段css是怎樣實現的?6. java - 我設置了cookie的max age,但是cookie依然在關閉游覽器后消失了7. apache - 想把之前寫的單機版 windows 軟件改成網絡版,讓每個用戶可以注冊并登錄。類似 qq 的登陸,怎么架設服務器呢?8. javascript - 一個關于客戶端和前端通信的疑惑?9. python3.x - c++調用python310. java - 根據月份查詢多個表里的內容怎么實現好?
