0

我有这样的字符串:

    parser = new ASTParser(in, encoding);

在我标记这些字符串后,我得到:

    ASTParser(in, encoding);

现在,我如何执行正则表达式来仅获取 ASTParser?

我尝试使用std::erase

    str.erase(std::remove_if(str.begin(), str.end(), isLetter), str.end());

但问题是我也得到了参数(ASTParserinencoding),我不想要这个。

另外,我将非常感谢boost::regex.

4

1 回答 1

2

不需要正则表达式——您所要做的就是扫描到第一个非字母。这是一种方法(注意我的 std::string 操作技能有点生疏):

str.substr(0, std::distance(str.begin(), std::find_if_not(str.begin(), str.end(), isLetter));

或者,您可以使用这样的正则表达式:

([A-Za-z_][A-Za-z0-9_]*)
于 2013-06-09T20:43:45.840 回答