How to combine regexps?

K

kj

One of the nice things one can do with Perl's regexp's is illustrated
in the following example:

my $gly = qr/gg[ucag]/i
my $ala = qr/gc[ucag]/i;
my $val = qr/gu[ucag]/i;
my $leu = qr/uu[ag]|cu[ucag]/i;
my $ile = qr/au[uca]/i;

my $aliphatic = qr/$gly|$ala|$val|$leu|$ile/;


In other words, one can build regular expressions by re-combining
other regular expressions.

Is there a way to do this with Python's regexps?

TIA!

kynn
 
C

Carl Banks

One of the nice things one can do with Perl's regexp's is illustrated
in the following example:

my $gly = qr/gg[ucag]/i
my $ala = qr/gc[ucag]/i;
my $val = qr/gu[ucag]/i;
my $leu = qr/uu[ag]|cu[ucag]/i;
my $ile = qr/au[uca]/i;

my $aliphatic = qr/$gly|$ala|$val|$leu|$ile/;

In other words, one can build regular expressions by re-combining
other regular expressions.

Is there a way to do this with Python's regexps?

Your example is just string manipulation.

You're not combining regexps here, you are combining strings which you
(evidently) will soon use to create a regexp.

Yes, you can do that in Python as well, in exactly the same way, using
Python's string manipulation capabilities.


Carl Banks
 
K

kj

One of the nice things one can do with Perl's regexp's is illustrated
in the following example:
my $gly = qr/gg[ucag]/i
my $ala = qr/gc[ucag]/i;
my $val = qr/gu[ucag]/i;
my $leu = qr/uu[ag]|cu[ucag]/i;
my $ile = qr/au[uca]/i;
my $aliphatic = qr/$gly|$ala|$val|$leu|$ile/;

In other words, one can build regular expressions by re-combining
other regular expressions.
Is there a way to do this with Python's regexps?


OK, answering my own question here, it looks like the only way to
do this is to leave the "component" expressions as regular strings,
and combine those, before compiling them into regexps.

Easy enough.

kynn
 
M

MRAB

kj said:
One of the nice things one can do with Perl's regexp's is illustrated
in the following example:
my $gly = qr/gg[ucag]/i
my $ala = qr/gc[ucag]/i;
my $val = qr/gu[ucag]/i;
my $leu = qr/uu[ag]|cu[ucag]/i;
my $ile = qr/au[uca]/i;
my $aliphatic = qr/$gly|$ala|$val|$leu|$ile/;

In other words, one can build regular expressions by re-combining
other regular expressions.
Is there a way to do this with Python's regexps?


OK, answering my own question here, it looks like the only way to
do this is to leave the "component" expressions as regular strings,
and combine those, before compiling them into regexps.

Easy enough.
A compiled regular expression has 'pattern' and 'flags' attributes, so
you can get the original parameters which were used to create it if a
function is given just the compiled regular expression. Might be useful.
 

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top