我有一个正则表达式。我正在字符串中找到正则表达式。但是,每次运行(而不是编译)时,都会出现此错误: 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:
答案 0 :(得分:1)
转义破折号-
,或使其成为右方括号[
之后的第一个字符。带有方括号的破折号具有特殊含义。