regexp in Python (from Perl)
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Sun Oct 19 12:47:31 EDT 2008
Pat a écrit :
> I have a regexp in Perl that converts the last digit of an ip address to
> '9'. This is a very particular case so I don't want to go off on a
> tangent of IP octets.
>
> ( my $s = $str ) =~ s/((\d+\.){3})\d+/${1}9/ ;
>
> While I can do this in Python which accomplishes the same thing:
>
> ip = ip[ :-1 ]
> ip =+ '9'
or:
ip = ip[:-1]+"9"
> I'm more interested, for my own edification in non-trivial cases, in how
> one would convert the Perl RE to a Python RE that use groups. I am
> somewhat familiar using the group method from the re package but I
> wanted to know if there was a one-line solution.
Is that what you want ?
>>> re.sub(r'^(((\d+)\.){3})\d+$', "\g<1>9", "192.168.1.1")
'192.168.1.9'
>>> re.sub(r'^(((\d+)\.){3})\d+$', "\g<1>9", "192.168.1.100")
'192.168.1.9'
More information about the Python-list
mailing list