John Machin <sjmachin <at> lexicon.net> writes: > > On Jun 12, 7:11 pm, anton <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I want to replace all occourences of " by \" in a string. > > > > But I want to leave all occourences of \" as they are. > > > > The following should happen: > > > > this I want " while I dont want this \"
... cut text off > What you want is: > > >> import re > >> text = r'frob this " avoid this \", OK?' > >>> text > 'frob this " avoid this \\", OK?' > >> re.sub(r'(?<!\\)"', r'\"', text) > frob this \\" avoid this \\", OK?' > >> > > HTH, > John > -- > http://mail.python.org/mailman/listinfo/python-list > > First.. thanks John. The whole problem is discussed in http://docs.python.org/dev/howto/regex.html#the-backslash-plague in the section "The Backslash Plague" Unfortunately this is *NOT* mentioned in the standard python documentation of the re module. Another thing which will always remain strange to me, is that even if in the python doc of raw string: http://docs.python.org/ref/strings.html its written: "Specifically, a raw string cannot end in a single backslash" s=r"\\" # works fine s=r"\" # works not (as stated) But both ENDS IN A SINGLE BACKSLASH ! The main thing which is hard to understand is: If a raw string is a string which ignores backslashes, then it should ignore them in all circumstances, or where could be the problem here (python parser somewhere??). Bye Anton -- http://mail.python.org/mailman/listinfo/python-list