【发布时间】:2021-12-20 09:25:30
【问题描述】:
import re
print(re.sub(
r'(size:)\D+(\d+)\D+(\d+)\D+(\d+)',
r'\2x\3x\4',
'START, size: 100Х200 x 50, END'
))
输出:
'START, 100x200x50, END'
我不希望正则表达式中未提及的字符串部分。外面的一切——必须省略。
是的,如果我们通过在末尾和开头添加.* 来提及整个内容,它将按预期工作:
r'.*(size:)\D+(\d+)\D+(\d+)\D+(\d+).*'
输出将是:
'100x200x50'
...默认情况下(对我而言)应该是这样的。
为什么? =)
更新
是的,很明显,它正在寻找一个匹配来替换它。 (半夜加班不会太明显=D)
但最好有解决方案来避免匹配整个字符串。
【问题讨论】:
标签: python regexp-replace