需要匹配包含字符串文件的字符串:并在字符串

时间:2015-11-06 07:17:38

标签: c++11

需要匹配字符串中包含字符串“file:// \\”和“report”的字符串。

如果我使用正则表达式(file:// \\\\)(。*)\\\\ report \\\\(。*)它正常工作。

但是,如果我使用表达式(file:// \\\\)(。*)\\ report \\(。*),则会出错。

我的问题是为什么需要使用四个反斜杠(\\\\)来匹配报表字符串之前和之后的一个反斜杠。

*wstring target(L"file://\\\\Example\\report\\001");
wsmatch wideMatch;
wregex wrx(L"(file://\\\\)(.*)\\\\report\\\\(.*)");

if (regex_match(target.cbegin(), target.cend(), wideMatch, wrx))
    wcout << L"The matching text is:" << wideMatch.str() << endl;*

可以请一些人回答。提前谢谢......

1 个答案:

答案 0 :(得分:1)

反斜杠在字符串文字和正则表达式中都是特殊的。要匹配正则表达式中的反斜杠,您需要通过添加第二个反斜杠来转义它。并且在字符串文字中有两个反斜杠然后你需要转义它们,导致你需要四个反斜杠。