【发布时间】:2018-08-04 11:52:32
【问题描述】:
我想匹配一个函数定义。函数定义可以像
int foo () {
// Some statement
}
int foo(int a, int b){}
int foo ()
{
}
我写了一个正则表达式foo\s*\([\w, ]*\)\s*{ 并在原子文本编辑器中尝试过,它运行良好。但是当我尝试在 C++14 编译器中运行它时,它给了我 regex_error()。我的 C++ 正则表达式是regex b("foo\s*\([\w, ]*\)\s*{");。我也尝试过将括号双重转义为\\(,但仍然无法正常工作。
【问题讨论】:
-
使用
regex b(R"(foo\s*\([\w, ]*\)\s*\{)"); -
转义反斜杠是一个很好的起点。您必须这样做(如果您使用普通字符串而不是原始字符串)。
-
@WiktorStribiżew 谢谢它的工作。
-
@Someprogrammerdude 我会记住这一点