【问题标题】:Learning Regex Backreferencing, and I don't understand what's going on学习正则表达式反向引用,我不明白发生了什么
【发布时间】:2019-08-15 04:43:42
【问题描述】:
str2=re.match("\W(.)\1\W", " f\x01 ")
print(str2)

OUPUT: <re.Match object; span=(0, 4), match=' f\x01 '>

当我将输入字符串中的“x”更改为“y”或任何其他字母时,这不起作用,并为str2=re.match("\W(.)\1\W", " f\y01 ")返回 NONE

str2=re.match("\W(.)\1\W", " ff ")
print(str2)

OUTPUT: None

因此,由于这些代码之间的唯一变化是输入的字符串以与 RE 进行比较。据我了解,RE 的意思是: [^a-zA-Z0-9_] + 任何字符 + [^a-zA-Z0-9_],所以我不明白为什么这些模式都不匹配 RE。

我正在 Jupyter Notebook 中工作,如果这可能会影响它的话。如果这是我忽略的非常明显/业余的事情,我很抱歉,谢谢。

【问题讨论】:

    标签: python regex regex-group


    【解决方案1】:

    没关系,就是少了r

    import re
    
    str2=re.match(r"\W(.)\1\W", " ff ")
    print(str2)
    

    如果您想探索/简化/修改表达式,它已经 在右上角的面板上进行了解释 regex101.com。如果你愿意,你 也可以在this link看,怎么搭配 针对一些样本输入。


    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多