re.search over a list

Pat Pat at junk.net
Fri Oct 24 02:53:14 CEST 2008


Bruno Desthuilliers wrote:
> Pat a écrit :
>> Bruno Desthuilliers wrote:
>>> Pat a écrit :
>>>> While I can use a for loop looking for a match on a list, I was 
>>>> wondering if there was a one-liner way.
>>>>
>>>> In particular, one of my RE's looks like this '^somestring$' so I 
>>>> can't just do this: re.search( '^somestring$', str( mylist ) )
>>>>
>>>> I'm not smart enough (total newbie) to code up a generator 
>>>> expression and I was wondering if I'm missing something obvious.
>>>
>>> words = ['foo', 'bar', 'somestring', 'baaz']
>>> re.search(r"^somestring$", "\n".join(words), re.MULTILINE)
>>>
>>>
>>>> I love succinct but clearly understandable code.
>>>
>>> separator.join(sequence_of_strings) is a very common python idiom, so 
>>> you can consider it as readable.
>>>
>>
>> That's excellent.  Exactly what I was looking for.
>>
>> Thank you VERY much!
> 
> Note that at least for this exact case, you don't need re at all:
> 
>  >>> 'somestring' in words
> True
> 
> But I guess you do have some less trivial use case !-)

I used re because I wanted a string that was not a substring, hence the 
^$.  In my trivial example, I used words but my intent was to search for 
words within a longer string.



More information about the Python-list mailing list