簡體   English   中英

C ++ 11正則表達式模式匹配

[英]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?$"

生活在Coliru

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM