Python 如何用w{3}替换模式w{3,3}

Python 如何用w{3}替换模式w{3,3},python,regex,python-2.7,python-3.x,Python,Regex,Python 2.7,Python 3.x,我指的是这个正则表达式中的任何数字 w{1,1} --> w{1} w{2,2} --> w{2} 依此类推。找到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* 然后再次输入相同的数字,

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

w{1,1} --> w{1}
w{2,2} --> w{2}
依此类推。

找到
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
  • 最后,我们也可以在替换中使用backreference:
    w{\1}

  • {1,2}会返回什么?不会改变。我只想把w{,}替换成w{digit}。所有rest-without change.import re str=“somestring\w{3,3}somestring”line=re.sub(r“w\{(\d*),\1\}”,“w{\1}”,str)print(line)我缺少一些东西:“somestring\w{}somestring”