表达式包含无效的整理元素名称c ++ regex

时间:2019-01-20 19:11:56

标签: c++ regex

我有一个正则表达式。我正在字符串中找到正则表达式。但是,每次运行(而不是编译)时,都会出现此错误: public ICommand ClearSelection { get { return _clearSelection ?? new RelayCommand((x) => { switch (x) { case ObservableCollection<GiraffeViewModel> giraffes: DeCheckElements(giraffes); break; case ObservableCollection<ElephantViewModel> elephants: DeCheckElements(elephants); break; } }); } } 。这是我的正则表达式:
The expression contained an invalid collating element name
当我在程序中使用它时:
:\w*:{[\w\s-+=\/*^%!;\(\)\[\]\{\}]*}:funcEND:
谁能告诉我为什么这会引发错误?我在网上看了一下,但是什么也找不到。我还检查了正则表达式Wiki。

以下是一些应匹配的文本:

regex const functionRegex(":\\w*:\\{[\\w\\s-+=\\/*^%!;\\(\\)\\[\\]\\{\\}]*\\}:funcEND:");

和:

:functionDetector:{
    foo=foo+bar;
}:funcEND:

有些文字不匹配:

:foo:{
    // hello world
}:funcEND:

源代码:

^BANK^{
    foo=1;
    bar=5;
}^BANK^

^UPDATE^{
    CALL:functionDectector;
}^UPDATE^

:hello:{
    // goo
}:qwerty:

1 个答案:

答案 0 :(得分:1)

转义破折号-,或使其成为右方括号[之后的第一个字符。带有方括号的破折号具有特殊含义。