RegEx: find all occurances of a single character in a string
P at draigBrady.com
P at draigBrady.com
Tue Dec 14 12:47:47 EST 2004
P at draigBrady.com wrote:
> P at draigBrady.com wrote:
>
>> import re
>> s='abcdatraataza'
>> r=re.compile('(?<!a)a(?!a)')
>> a_list=[ match.start() for match in re2.finditer(s) ]
>>
>
> Oops, tested this time:
> ----------------------------
>
> import re
>
>
> def index_letters(s,l):
> regexp='(?<!%s)%s(?!%s)' % (l,l,l)
> r=re.compile(regexp)
> return [ match.start() for match in r.finditer(s) ]
>
>
> print index_letters('abcdatraataza','a')
Just comparing Fredrik Lundh's method:
r=re.compile("a+")
[m.start() for m in r.finditer(s) if len(m.group()) == 1]
Mine runs 100K iterations of 'abcdatraataza','a' in 1.4s
whereas Fredrik's does the same in 1.9s
--
Pádraig Brady - http://www.pixelbeat.org
--
More information about the Python-list
mailing list