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 - webpack构建工具重构代码的流程是怎么样的?2. java - 安卓调用c++lib3. 如何解决docker宿主机无法访问容器中的服务?4. css3 - 求css页面解决方案5. mysql 5个left关键 然后再用搜索条件 几千条数据就会卡,如何解决呢6. HTML5表单必填属性设置自定义验证消息?7. javascript - 想做一个canvas的触摸画板,但屏幕会在画的时候滚来滚去,如何阻止?8. java - 大家可以分享一下各自如何高效编程吗?就是一些常用的配置及习惯等等9. css - 如何讓圖片像雲一樣的行為?10. mysql - sql 左连接结果union右连接结果,导致重复性计算怎么解决?

网公网安备