Python 带*的非贪婪匹配^

Python 带*的非贪婪匹配^,python,regex,placeholder,regex-greedy,non-greedy,Python,Regex,Placeholder,Regex Greedy,Non Greedy,给定字符串: s = "Why did you foo bar a <b>^f('y')[f('x').get()]^? and ^f('barbar')^</b>" 我试过re.sub('^.*^',PLACEXHOLDER',s)但是.*是贪婪的,它匹配,^f('y')[f('x').get()]^?和^f('barbar')^,并输出: 你为什么去酒吧 可以有多个未知数字的子字符串由\^编码,因此不需要硬编码: re.sub('(\^.+\^).*(\^.*\^)

给定字符串:

s = "Why did you foo bar a <b>^f('y')[f('x').get()]^? and ^f('barbar')^</b>"
我试过
re.sub('^.*^',PLACEXHOLDER',s)
但是
.*
是贪婪的,它匹配,
^f('y')[f('x').get()]^?和^f('barbar')^
,并输出:

你为什么去酒吧

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

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

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

\^.*?\^

为什么要禁用a^f('y')[f('x')。get()]^?和^f(‘芭芭拉’)^
适当地代替

你为什么要把一个地方屏蔽掉?和PLACEXHOLDER

如果在星号后添加问号,则会使其不贪婪

\^.*?\^

为什么要禁用a^f('y')[f('x')。get()]^?和^f(‘芭芭拉’)^
适当地代替

你为什么要把一个地方屏蔽掉?和PLACEXHOLDER
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>