Boost logo

Boost :

Subject: Re: [boost] [Regex] Why doesn't this pattern match?
From: Sylvester-Bradley, Gareth (Gareth.Sylvester-Bradley_at_[hidden])
Date: 2009-12-08 06:10:48

>> Yes, Robert, You are right. I am trying to change \\n (wchar_t '\'
>> wchar_t 'n') with a real new line symbols and it doesn't work.
>> then I am trying to find only wchar_t 'n' (or any other letter)
>> is working good. The problem is that I have XML configuration file
>> (Unicode), where all new lines are L"\\n" (!!! not '\n' !!!). I can't

>> change that file format. Of course I can program that replace without

>> boost::regex, but I am afraid that I'll loose my sleep afterwards...
>>>> You're replacing each occurrence of \\n with \\n, so the
>>>> string at the end should be exactly the same! :-)
>>> The replacement is "\n" not "\\n" so the '\' followed by 'n' in str
>>> should be replaced with a newline, right?
> No. Remember the compiler gets first bite at the escape characters,
so if
> you put a string "\\n" in your program, that gets passed to
Boost.Regex as
> the two character string: "\n", which matches a single newline
> If you want to match a \ followed by a \n then you need a regex of

If you want to match a '\' followed by an 'n' (as I think the OP needs),
do you need a regex of "\\\\n" (or "\\Q\\n\\E")?

The information contained in this message or any of its attachments may be confidential and is intended for the exclusive use of the addressee(s). Any disclosure, reproduction, distribution or other dissemination or use of this communication is strictly prohibited without the express permission of the sender. The views expressed in this email are those of the individual and not necessarily those of Sony or Sony affiliated companies. Sony email is for business use only.

This email and any response may be monitored by Sony to be in compliance with Sony's global policies and standards

Boost list run by bdawes at, gregod at, cpdaniel at, john at