[英]How to use string variable multiple times to make regex expression
只是想在我的正则表达式变量的构造中多次使用一个字符串变量。 我想匹配一个单词,无论它是单词本身还是在末尾附加一个数字(最多两位数)的同一个单词例如,假设我有这个:
string str1 = "MyWord"; //I want this to pass
string str2 = "MyWord2"; //I want this to pass
string str3 = "MyWor"; //I want this to fail
//This works, but I don't want to use a string literal, I want to use str1
const regex re("MyWord|MyWord\\d{1,2}");
//I need the variable to be used multiple times in the regex
const regex re(str1 | str1\\d{1,2})
if (regex_match (str2, re )){
cout << "We have a match";
}
您需要将str1
变量与表示正则表达式其余部分的字符串文字连接起来,例如:
const regex re(str1 + "|" + str1 + "\\d{1,2}");
或者,您可以使用 C++20 的std::format()
(或等效的)避免str1
的重复,例如:
const regex re(format("{0}|{0}\\d{{1,2}}", str1));
然而,话虽这么说,因为你真的只是在寻找一个后面有一个可选数字的单词,你可以将正则表达式简化为:
const regex re(str1 + "\\d{0,2}");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.