re.search over a list
Pat
Pat at junk.net
Thu Oct 23 20:53:14 EDT 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