2015-11-10 2 views
1

Учитывая регулярное выражение ECMAScript, я пытаюсь проверить строку по указанному шаблону. Например, строка "+0.1" должна пройти тест. Однако результатом std::regex_match является false.C++ 11 шаблон регулярного выражения

Я также протестировал регулярки узора на regexr и она работает.

Так что я не так?

ответ

7

Обратная косая черта в \. и \d рассматривается как escape-символ строковых литералов C++.

Либо использовать сырые строковые литералы (R"***(^[+-]?\d{1,3}\.?\d?$)***") или бежать обратный слэш как этот "^[+-]?\\d{1,3}\\.?\\d?$"

Live On Coliru

Смежные вопросы