需要C ++ 11正则表达式来匹配:
"$VARNAME" or "${VARNAME}"
其中VARNAME可以是任何字母数字文字。
这是我尝试过的:
#include <iostream>
#include <regex>
#include <string>
using namespace std;
void main() {
string line = "${USERPROFILE}/blah/blah/blah";
smatch M;
regex r1{ R"(\$\{?(\w+)\}?)" };
bool success = regex_match(line, M, r1);
if (!success) {
cout << "Why doesn't this match?" << endl;
}
return;
}
为什么不匹配?
答案 0 :(得分:1)
因为您的模式不是Assembling: ..\code\main.asm
main.obj : error LNK2019: unresolved external symbol _ExitProcess referenced in function _main
测试字符串。而不是match
,您需要std::regex_match