[英]C++11 regex pattern match
給定ECMAScript正則表達式,我試圖針對指定的模式測試字符串。 例如,字符串"+0.1"
應通過測試。 但是std::regex_match
的結果為false 。
#include <regex>
#include <string>
std::regex format("^[+-]?\d{1,3}\.?\d?$");
std::string str = "+0.1";
bool match = std::regex_match(str, format); // false
我也在regexr上測試了regex模式,它可以工作。
那我怎么了?
\\.
反斜杠\\.
和\\d
被視為C ++字符串文字的轉義字符。
請使用原始字符串文字( R"***(^[+-]?\\d{1,3}\\.?\\d?$)***"
)或使用諸如"^[+-]?\\\\d{1,3}\\\\.?\\\\d?$"
的反斜杠"^[+-]?\\\\d{1,3}\\\\.?\\\\d?$"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.