【问题标题】:re.compile() doesn't match the valid pattern against a string python [duplicate]re.compile() 与字符串 python 的有效模式不匹配 [重复]
【发布时间】:2018-08-07 22:27:29
【问题描述】:

以下匹配无效:

import re
pattern = re.compile("[\^\/!*\[({%?$]")

param = "f00.*"

if pattern.match(param):
    print " I am a regexp"
else:
    print "non regexp"

但这确实:

import re
node_pattern = re.search("[\^\/!*\[({%?$]", "f00.*")

print bool(node_pattern)

re.compile() 有什么问题?

这不是将字符串与正则表达式匹配的有效方法吗?

【问题讨论】:

    标签: python regex python-2.7


    【解决方案1】:

    正如 Lev Zakharov 指出的那样,您的问题与其说是关于 re.compile(),不如说是关于 re.search()re.match() 之间的区别。此代码按您希望的方式工作,只需将 match 更改为 search

    import re
    pattern = re.compile("[\^\/!*\[({%?$]")
    
    param = "f00.*"
    
    if pattern.search(param):
        print " I am a regexp"
    else:
        print "non regexp"
    

    也许您对我们没有得到的用例有更具体的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多