[Tutor] Regex question

Steve Willoughby steve at alchemy.com
Wed Mar 30 09:16:29 CEST 2011


On 29-Mar-11 23:55, Alan Gauld wrote:
> ""Andrés Chandía"" <andres at chandia.net> wrote
>> in perl there is a way to reference previous registers,
>> $text =~ s/<u>(l|L|n|N)<\/u>/$1e/g;
>
>> I'm looking for the way to do it in python


If you're using just a straight call to re.sub(), it works like this:

	text = re.sub(r'<u>(l|L|n|N)</u>', '\1e', text)

You use \1, \2, etc. for backreferences just like all the other 
regex-based editors do (Perl's more of an exception than the rule there).

Alternatively, you can pre-compile the regular expression into an object:
	pattern = re.compile(r'<u>(l|L|n|N)</u>')

and then substitute by calling its sub() method:

	text = pattern.sub('\1e', text)
-- 
Steve Willoughby / steve at alchemy.com
"A ship in harbor is safe, but that is not what ships are built for."
PGP Fingerprint 48A3 2621 E72C 31D9 2928 2E8F 6506 DB29 54F7 0F53


More information about the Tutor mailing list