[Tutor] Question on regular expressions
breamoreboy at yahoo.co.uk
Tue Feb 12 22:55:42 CET 2013
On 12/02/2013 17:43, Marcin Mleczko wrote:
> given this kind of string:
> "start SomeArbitraryAmountOfText start AnotherArbitraryAmountOfText end"
> a search string like: r"start.*?end" would give me the entire string
> from the first "start" to "end" : "start SomeArbitraryAmountOfText start
> AnotherArbitraryAmountOfText end"
> but I am interested only in the second part between the 2nd "start" and
> the "end": "start AnotherArbitraryAmountOfText end"
> What would be best, most clever way to search for that?
> Or even more general: how do I exlude always the text between the last
> "start" and the "end" tag assuming the entire text contains several
> "start" tags spaced by an arbitrary amount of text befor the "end" tag?
> Any ideas?
> Thank you in advance. ;-)
IMHO the best way is to use the rindex method to grab what you're after.
I don't do clever, it makes code too difficult to maintain. So how about.
>>> a="start SomeArbitraryAmountOfText start
>>> b="start "
>>> y=a.rindex(' end')
>>> c="garbage in, garbage out"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
More information about the Tutor