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”