creating an (inefficent) alternating regular expression from a list of options

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Tue Sep 9 09:39:20 EDT 2008


On Tue, 09 Sep 2008 08:19:04 -0500, Larry Bates wrote:

>> I really dont care if the expression is optimal. So the goal is
>> something like:
>> 
>> vowel_regexp = oneOf("a aa i ii u uu".split())  # yielding r'(aa|a|uu|
>> u|ii|i)'
>> 
>> Is there a public module available for this purpose?
>> 
>> 
>> 
> Perhaps I'm missing something but your function call oneOf(...) is
> longer than than actually specifying the result.
> 
> You can certainly write quite easily:
> 
> def oneOf(s):
>      return "|".join(s.split())

I'd throw `re.escape()` into that function just in case `s` contains 
something with special meaning in regular expressions.

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list