【问题标题】:How to replace the pattern w{3,3} with w{3}如何用 w{3} 替换模式 w{3,3}
【发布时间】:2016-09-02 11:44:46
【问题描述】:

我指的是这个正则表达式中的任何数字。

w{1,1} --> w{1}
w{2,2} --> w{2}

等等。

【问题讨论】:

  • {1,2} 会返回什么?
  • 不会改变。我只想将 w{,} 替换为 w{digit}。全部休息 - 没有变化。

标签: python regex python-2.7 python-3.x


【解决方案1】:

找到w\{(\d*),\1\}并将其替换为w{\1}

这是一个完整的python代码示例:

import re
 re.sub(r'w\{\s*([0-9]+)\s*,\s*\1\s*\}', r'w{\1}', 'w{1,1}')

解释:

  • 我们必须避开花括号:\{\}
  • 我们需要一个或多个号码:[0-9]+
  • 这个数字被零个或多个空格包围:\s*
  • 然后又是相同的数字,带有 反向引用\1
  • 最后,我们也可以在替换中使用反向引用:w{\1}

【讨论】:

  • import re str = "somestring\w{3,3}somestring" line = re.sub(r"w\{(\d*),\1\}", "w{\ 1}" , str) print (line) 我遗漏了一些东西:“somestring\w{}somestring”
猜你喜欢
  • 2013-12-06
  • 2017-04-21
  • 1970-01-01
  • 2020-07-03
  • 1970-01-01
  • 2011-11-23
  • 2018-03-18
  • 2016-08-15
  • 2015-09-08
相关资源
最近更新 更多