.* 与 ^ 的非贪婪匹配



给定字符串:

s = "Why did you foo bar a <b>^f('y')[f('x').get()]^? and ^f('barbar')^</b>"

如何用字符串替换^f('y')[f('x').get()]^^f('barbar')^,例如 PLACEXHOLDER

所需的输出为:

Why did you foo bar a <b>PLACEXHOLDER? and PLACEXHOLDER</b>

我已经尝试过re.sub('^.*^', 'PLACEXHOLDER', s)但是.*很贪婪,它匹配,^f('y')[f('x').get()]^? and ^f('barbar')^和输出:

你为什么 foo 酒吧 PLACEXHOLDER

可以有多个未知数字的子字符串由^编码,因此不需要硬编码:

re.sub('(^.+^).*(^.*^)', 'PLACEXHOLDER', s)

如果在星号后面加一个问号,它将使其不贪婪。

^.*?^

http://www.regexpal.com/?fam=97647

Why did you foo bar a <b>^f('y')[f('x').get()]^? and ^f('barbar')^</b>

正确替换为

Why did you foo bar a <b>PLACEXHOLDER? and PLACEXHOLDER</b>

相关内容

  • 没有找到相关文章

最新更新