玩蛇网提供最新Python编程技术信息以及Python资源下载!

求解文中正则匹配'\'将''转义成字符串的原理

In [33]: re.match('ab\\*c','ab*cd')
Out[33]: <_sre.SRE_Match object; span=(0, 4), match='ab*c'>

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

不想匹配到就加个 r。

re.match(r'ab\\*c','ab*cd')
'ab\\*c'

这个规则在 compile 之后确实就是

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

那么当然可以匹配目标字符串 ab*cd 中的 ab*c

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。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13992.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月31日 - 14时01分49秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules