regex confusion
Peter Otten
__peter__ at web.de
Tue Dec 9 11:51:01 EST 2003
John Hunter wrote:
>
> In trying to sdebug why a certain regex wasn't working like I expected
> it to, I came across this strange (to me) behavior. The file I am
> trying to match definitely contains many instances of the letter 'a',
> so I would expect the regex
>
> rgxPrev = re.compile('.*?a.*?')
>
> to match it the string contents of the file. But it doesn't. Here is
[...]
> I read the regex to mean non-greedy match of anything up to an a,
> followed by non-greedy match of anything following an a, which this
> file should match.
There is a nice example where non-greedy regexes are really useful in A. M.
Kuchling's Regex Howto (http://www.amk.ca/python/howto/regex/regex.html)
> Or am I insane?
This may be off-topic, but the easiest if not fastest way to find multiple
occurences of a string in a text is:
>>> import re
>>> r = re.compile("a")
>>> for m in r.finditer("abca\na"):
... print m.start()
...
0
3
5
>>>
Peter
More information about the Python-list
mailing list