正则表达式匹配C#.NET中未指定的符号和字符
我正在尝试将一组字符与模式匹配。但是,在没有指定的情况下,符号是匹配的。你能解释一下为什么正则表达式会这样吗正则表达式匹配C#.NET中未指定的符号和字符,c#,.net,regex,escaping,C#,.net,Regex,Escaping,我正在尝试将一组字符与模式匹配。但是,在没有指定的情况下,符号是匹配的。你能解释一下为什么正则表达式会这样吗 string input = "<font face=\"Verdana\">É-øá-É-</font><font face=\"Arial\"> ;&: ant ;ghj\n</font>"; Regex Matcher = new Regex("</font><font face=\"[\\w\\s-_]+
string input = "<font face=\"Verdana\">É-øá-É-</font><font face=\"Arial\"> ;&: ant ;ghj\n</font>";
Regex Matcher = new Regex("</font><font face=\"[\\w\\s-_]+\">[ -,:;\\.\\r\\n\\/\\]\\)]+");
string output = Matcher.Match(input);
string input=“ø-ø-É-;&:ant;ghj\n”;
正则表达式匹配器=新正则表达式(“[-,:;\\.\\r\\n\\/\\]\\)]+”;
字符串输出=Matcher.Match(输入);
我需要输出为
“;”
因为字体开始标记后的可匹配字符不包含&character
但我得到的实际输出是
”;&:“
为什么这个正则表达式也与&字符匹配?您应该转义破折号
-
[ -,
表示匹配空格和逗号之间的所有字符
SPACE => 32
COMMA => 44
APERSTAND => 38 (matches)
您忘记逃过破折号“-”更改为:
Regex Matcher = new Regex("</font><font face=\"[\\w\\s-_]+\">[ \\-,:;\\r\\n\\/\\]\\)]+");
Regex Matcher=newregex(“[\\-,:;\\r\\n\\/\\]\\)]+”;
Aah,那的确是我的粗心。谢谢。谢谢你的快速回复。