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. python - 请问用cxfreeze打包的可执行程序能反编译出源码么?2. javascript - 这种上传图片预览怎么做?3. javascript - prismplayer播放器全屏问题4. javascript - vue2.0中router.repalce跟router.push有什么区别,二者的应用场景是会有怎样的区别?5. javascript - js判断一个数组是否重复6. javascript - input输入框触发change事件后,外部元素会被选中7. python - 用__call__ 实现装饰器功能8. javascript - 把字符串日期转换成一般时间格式后,发现小于10的数字不会自动添加0在前面,如下9. python相关问题求解决,有偿10. javascript - 在sublime中如何给.vue文件注释?