
Didn't knew regex engine is working in that way... If he understands "\\\\n" as C++ "\\n" and "\\n" as C++ understands "\n", then how regex engine understands "\n" ...? It's nothing to do with how the regex engine works; it's the fact that backslashes are interpreted as escape sequences in C++ as well as in Regex. So, if you include "\\\\n" as a regex in your C++ source, the regex engine is actually passed "\\n"; if you were to read the regex
On Tue, Dec 8, 2009 at 6:07 AM, Vitalij Gotovskij <Vitalij.gotovskij@ashburn.lt> wrote: pattern from a file or the console, you'd use "\\n" rather than "\\\\n" for the effect you want. Similarly, if you include "\\n" as a regex in your C++ source, the regex engine actually sees "\n" and hence matches a newline. If you read the regex pattern from a file or the console, you'd need to enter "\n" rather than "\\n". And finally, if you include "\n" as a regex in your C++ source, the regex engine actually sees a newline character rather than the escape sequence "\n". I'm not really sure if it will then match a newline character; I would assume so, though. On Tue, Dec 8, 2009 at 6:10 AM, Sylvester-Bradley, Gareth <Gareth.Sylvester-Bradley@eu.sony.com> wrote:
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")?
Indeed. After compilation, "\\\\n" becomes "\\n", which matches '\' followed by 'n'. --CM