使用正则表达式嵌套组迭代

时间:2016-05-16 22:22:56

标签: python regex regex-group

我有一个类似的字符串:

Hello +++this--- is a funny +++string--- with words inside

我需要查找被+++---包围的字词,并将+++---符号替换为html标记,例如<a>word</a>

以便上面的文字成为:

Hello <a>this</a> is a funny <a>string</a> with words inside

我目前正在使用以下正则表达式并使用sub指令:

rgx = re.compile(r'(?:\+\+\+)(?P<word>.+)(?:\-\-\-)')
output = rgx.sub('<a>\\g<word></a>')

我得到的输出是:

Hello <a>this--- is a funny +++string</a> with words inside

如您所见,只考虑了第一个和最后一个+++ / ---。中间人似乎被忽略了。显然,第一个和最后一个+++ / ---之间的大字符串匹配我的正则表达式。

如何让re逐个匹配所有群组,而不考虑重叠匹配?

注意:我已尝试在捕获组中使用^\+^\-,但由于+或{{1},它无法正常工作可以是任何单词,只要它不是-+++,就应保持原样。

0 个答案:

没有答案