I have a string like like:
Hello +++this--- is a funny +++string--- with words inside
I need to look for words surrounded by +++ and --- and replace the +++ and --- signs with html tags like <a>word</a>.
So that the text above becomes:
Hello <a>this</a> is a funny <a>string</a> with words inside
I'm currently using the following regex with a sub instruction:
rgx = re.compile(r'(?:\+\+\+)(?P<word>.+)(?:\-\-\-)')
output = rgx.sub('<a>\\g<word></a>')
And the output I get is:
Hello <a>this--- is a funny +++string</a> with words inside
As you can see, only the first and last +++/--- are taken into account. The ones in the middle seems to be ignored. Obviously the big string between first and last +++/--- match my regex.
How can I get re to match all groups one by one, and not consider the big overlapping match?
Note: I've tried with ^\+ and ^\- in the capturing group, but it doesn't work because a + or - could be in any word and should be kept as is, as long as it's not +++ or ---.