On 30-Mar-11 08:21, "Andrés Chandía" wrote:
Thanks Kushal and Steve.
I think it works,a I say "I think" because at the
results I got a strange character instead of the letter that should appear
this is
my regexp:
contents = re.sub(r'(<u>|<span style="text-decoration:
underline;">)(l|L|n|N|t|T)(</span>|</u>)', '\2\'' ,contents)
Remember that \2 in a string means the ASCII character with the code
002. You need to escape this with an extra backslash:
'\\2\''
Although it would be more convenient to switch to double quotes to make
the inclusion of the literal single quote easier:
"\\2'"
How does that work? As the string is being "built", the \\ is
interpreted as a literal backslash, so the actual characters in the
string's value end up being:
\2'
THAT is what is then passed into the sub() function, where \2 means to
replace the second match.
This can be yet simpler by using raw strings:
r"\2'"
Since in raw strings, backslashes do almost nothing special at all, so
you don't need to double them.
I should have thought of that when sending my original answer to your
question. Sorry I overlooked it.
--steve
--
Steve Willoughby / st...@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
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor