kumar s via Tutor wrote: > Hi group, I am trying to substitute in the following way and i cannot. > Could you point out whats wrong in what i am doing. > >>>> z'.|D' >>>> re.sub(z,'1',z)'111' > I just want only '1' and not '111'. > I want:>>> re.sub(z,'1',z)'1' > re.sub is repeatedly inserting 3 times because z has .|D . How can I > substitute only 1. ThanksKumar
Do you mean >>> import re >>> z = r".\D" >>> re.sub(re.escape(z), "1", z) '1' >>> re.sub(re.escape(z), "1", r"foo .\D bar .\D baz") 'foo 1 bar 1 baz' ? It works like this: >>> print(re.escape(z)) \.\\D i. e. re.escape() escapes the characters that have a special meaning in a regular expression, in your case the dot and the backslash. _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
