Begineer Question : Global string substitution with re
peter leonard
pfleonard at hotmail.com
Mon Sep 22 05:22:44 EDT 2003
Hi,
This is a basic question but I can't figure out what is wron - even after
reading the documentation. I have a script that normalizes strings. One of
the steps is to convert all fractions too the tag 'fraction'. For example :
import re
line = "This is the first ratio, 170/37, and this is the second 170/37 "
def normalise(text):
#Tag fractions
fraction = r'(\s+\d+\/\d+\s+)'
regfr = re.compile(fraction)
text = regfr.sub(" |fraction| ",text)
#Remove punctuation
punc = r'\,'
regpunc = re.compile(punc)
text = regpunc.sub("",text)
return text
print line,"\n"
print normalise(line),"\n"
The output from this script is :
This is the first ratio, 170/37, and this is the second 170/37
This is the first ratio 170/37 and this is the second |fraction|
I can't understand why only one of the fractions gets substituted. The
documentation for sub states that the default argument for sub is 0 which
means replace all occurences. The output of my script should be :
This is the first ratio |fraction| and this is the second |fraction|
Any help appreciated.
Peter
_________________________________________________________________
Add MSN 8 Internet Software to your existing Internet access and enjoy
patented spam protection and more. Sign up now!
http://join.msn.com/?page=dept/byoa
More information about the Python-list
mailing list