需要匹配字符串中包含字符串“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;*
可以请一些人回答。提前谢谢......
答案 0 :(得分:1)
反斜杠在字符串文字和正则表达式中都是特殊的。要匹配正则表达式中的反斜杠,您需要通过添加第二个反斜杠来转义它。并且在字符串文字中有两个反斜杠然后你需要转义它们,导致你需要四个反斜杠。