python - 一个简单的正则匹配问题
阿神
阿神 2017-04-18 10:20:43
0
3
704
In [33]: re.match('ab\\*c','ab*cd')
Out[33]: <_sre.SRE_Match object; span=(0, 4), match='ab*c'>

如上,没想明白为什么能匹配到,我的匹配模式中不是使用'\'将''转义成了字符串了吗,为什么最后还能匹配到结果??谢谢!!

阿神
阿神

闭关修行中......

全部回覆(3)
左手右手慢动作

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 used without invoking their special meaning. This collides with Python's used without invoking their special meaning. This collides with Python's usage of the sameli charer tip . 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。

Peter_Zhu
'ab\*c'

這個規則在 compile 之後確實就是

'ab*c' // 这里*表示匹配`*`这个字符

那當然可以匹配目標字串 ab*cd 中的 ab*c

黄舟

不想配對到就加個 r。

re.match(r'ab\*c','ab*cd')
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板