Finding all regex matches by index?
MRAB
python at mrabarnett.plus.com
Tue May 29 21:45:00 EDT 2012
On 30/05/2012 02:33, Roy Smith wrote:
> I have a long string (possibly 100s of Mbytes) that I want to search for
> regex matches. re.finditer() is *almost* what I want, but the problem
> is that it returns matching strings. What I need is a list of offsets
> in the string where the regex matched. Thus:
>
> s = "this is a string"
> find("is", s) => [2, 5]
>
> Is there anything that does this?
re.finditer() doesn't return matching strings, it returns match
objects. What you want are the start positions of each match which the
match object can provide:
>>> s = "this is a string"
>>> [m.start() for m in re.finditer("is", s)]
[2, 5]
More information about the Python-list
mailing list