【问题标题】:Python not recognizing regexPython无法识别正则表达式
【发布时间】:2016-04-06 00:24:25
【问题描述】:

我正在使用从这个问题Regular expression to match any character being repeated more than 10 times获得的解决方案

您需要的正则表达式是 /(.)\1{9,}/.

https://regex101.com/ 正在识别它,grep 识别它,但 python 没有。

最后我想用单个空格替换匹配,例如:

>> text = 'this is text???????????????'
>> pattern = re.compile(r'/(.)\1{5,}/')
>> re.sub(pattern,'\s',text)
'this is text '

但是,searchfindall,甚至match 都无法识别该模式,知道为什么吗?

【问题讨论】:

标签: python regex python-3.x


【解决方案1】:
re.sub(r'(.)\1{9,}', ' ',text)

斜线不是正则表达式的一部分,它们是一种语法结构,某些语言通过它形成正则表达式文字(对于 PHP 的 preg 模块,这是一种奇怪的情况)。

使用您的正则表达式,您将匹配this is text/?????????????/,并将其转换为this is text\s(注意\s 在替换字符串中没有任何意义)。

【讨论】:

  • 搞笑的部分是该问题的第二个答案包含 Python 的正确正则表达式。
  • @IgnacioVazquez-Abrams:哦,哈哈!
  • 即使包含在内,解释也很棒。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-17
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 2023-01-16
  • 2017-12-08
相关资源
最近更新 更多