For a larger Python program I am developing, I am trying to write a method which removes all sections of a string eveloped by two different tags; a start tag r'{foo}'
and an end tag r'{/foo}'
. If it were to run successfully, it would take a string such as:
r'stay {foo}leave{/foo} stay {foo} leave {/foo} stay'
and return string:
r'stay stay stay'.
Furthermore, it wouldn't do anything if the sections were incomplete. In other words, if you gave the program string:
r'stay {/foo} {foo} leave {/foo} {foo} stay'
it would return string:
r'stay {/foo} {foo} stay'
which is the intended behavior.
To resolve this issue, I turned to the python re library to create a regular expression that would do this for me. The closest thing I've had to success is with the regex pattern r'{foo}.*{/foo}'
which only works, if and only if, there is one tagged section within the string. For example, using the pattern r'{foo}.*{/foo}'
with string:
r'stay {foo} leave {/foo} stay'
would return r'stay stay'
as expected, but if I do the same with the first example:
r'stay {foo}leave{/foo} stay {foo} leave {/foo} stay'
I'd get r'stay stay'
instead of the expected result r'stay stay stay'
.
While I feel like I am so close to figuring this out, my understanding of regular expressions is far from advanced. I would appreciate some help troubleshooting the right regex pattern for this scenario.