Regex 为什么';这不是正则表达式匹配吗? std::cout 0
我希望上面的正则表达式与给定的字符串匹配,但它不匹配。怎么了Regex 为什么';这不是正则表达式匹配吗? std::cout 0,regex,c++11,Regex,C++11,我希望上面的正则表达式与给定的字符串匹配,但它不匹配。怎么了 它在上匹配,在记事本++中测试时,代码存在两个问题,都与无效相关: “\d”被解释为转义序列,生成的字符串(传递到std::regex)将不包含您期望的内容-而是使用“\\d”正确地获取斜杠,后跟字母d “\/”不是有效的转义序列,您确实不需要转义/,而是将其保持为(“/”) 工作示例 #包括 #包括 #包括 int main(){ bool result=std::regex\u匹配( 标准::字符串(“F1/1/13/3/14
它在上匹配,在记事本++中测试时,代码存在两个问题,都与无效相关:
“\d”
被解释为转义序列,生成的字符串(传递到std::regex
)将不包含您期望的内容-而是使用“\\d”
正确地获取斜杠,后跟字母d
“\/”
不是有效的转义序列,您确实不需要转义/
,而是将其保持为(“/”
)工作示例
#包括
#包括
#包括
int main(){
bool result=std::regex\u匹配(
标准::字符串(“F1/1/13/3/14/4/1”),
std::regex(“f\\d+/\\d+/\\d+\\d+/\\d+/\\d+/\\d+\\d+/\\d+/\\d+/\\d+”)
);
我不知道你需要双倍逃跑。
std::cout << std::regex_match(std::string("f 1/1/1 3/3/1 4/4/1"), std::regex("f \d+\/\d+\/\d+ \d+\/\d+\/\d+ \d+\/\d+\/\d+")); // -> 0
#include <regex>
#include <iostream>
#include <string>
int main () {
bool result = std::regex_match (
std::string ("f 1/1/1 3/3/1 4/4/1"),
std::regex ("f \\d+/\\d+/\\d+ \\d+/\\d+/\\d+ \\d+/\\d+/\\d+")
);
std::cout << result << std::endl; // 1
}