我正在尝试验证字符串是否与带有otp的正则表达式相对应,如下所示:

regex rgx("#^\([ \r\t\n\f]*([-]?[0-9]+)[ \r\t\n\f]*,[ \r\t\n\f]*([-]?[0-9]+)[ \r\t\n\f]*\)$#");
bool test = regex_search("(12,3)", rgx);

该字符串应该匹配,但是之后test = false!

最佳答案

您需要将文字包装为Raw文字:

regex rgx(R"#(^\([ \r\t\n\f]*([-]?[0-9]+)[ \r\t\n\f]*,[ \r\t\n\f]*([-]?[0-9]+)[ \r\t\n\f]*\)$)#");


顺便说一句,我相信以下正则表达式与您的正则表达式相同,但简单得多:

regex rgx(R"#(^\(\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$)#");


或没有原始文字:

regex rgx("^\\(\\s*(-?\\d+)\\s*,\\s*(-?\\d+)\\s*\\)$")

09-25 21:40