0

文字列が次のような stl の正規表現に対応するかどうかを確認しようとしています:

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 !

4

1 に答える 1

1

リテラルを 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*\\)$")
于 2013-10-19T16:20:22.667 に答える