C ++ 11正则表达式以匹配$ VARNAME或$ {VARNAME}

时间:2018-08-08 23:09:48

标签: regex c++11

需要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;
}

为什么不匹配?

1 个答案:

答案 0 :(得分:1)

因为您的模式不是Assembling: ..\code\main.asm main.obj : error LNK2019: unresolved external symbol _ExitProcess referenced in function _main 测试字符串。而不是match,您需要std::regex_match