【问题标题】:Python inconsistencies reading regex filePython读取正则表达式文件不一致
【发布时间】:2018-10-08 18:48:25
【问题描述】:

我有一个正在读取和编译的正则表达式文件。我遇到的问题是正则表达式有时会引导\

Z\\d*\\.file_\\.?

而不是

Z\d*\.file_\.?

有时匹配,但有时不匹配。

【问题讨论】:

标签: python regex python-2.7 csv


【解决方案1】:

当您使用原始字符串和双反斜杠时,它很可能不匹配。

s = "ABC 23"

re.findall('\d+',s)
['23']

re.findall(r'\d+',s)

['23']

re.findall('\\d+',s)
['23']

re.findall(r'\\d+',s)     

[]

【讨论】:

    【解决方案2】:

    我不知道这是否是您想要的,但如果您阅读 documentation of regular expression operations

    上面写着:

    "正则表达式使用反斜杠字符('\')表示 特殊形式或允许在不使用特殊字符的情况下使用 调用它们的特殊含义”

    还有:

    "解决方法是使用 Python 的原始字符串表示法 表达模式;反斜杠不以任何特殊方式处理 以 'r' 为前缀的字符串文字

    例子:

    regex= re.compile(r'string')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-08
      • 2012-08-19
      • 1970-01-01
      • 2014-12-03
      • 2013-06-12
      • 2017-01-20
      • 2016-07-25
      • 2018-04-06
      相关资源
      最近更新 更多