我试图将一组字符与模式匹配。但是&符号没有指定匹配。你能解释为什么Regex会这样吗?
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);
我需要输出
"</font><font face=\"Arial\"> ;"
因为字体开始标记之后的匹配字符不包含&amp;字符。
但我得到的实际输出是
"</font><font face=\"Myriad\"> ;&: "
为什么这个正则表达式匹配&amp;人物呢?
答案 0 :(得分:1)
你应该逃脱破折号-
。
[ -,
表示匹配空格和逗号之间的所有字符。
SPACE => 32
COMMA => 44
APERSTAND => 38 (matches)
答案 1 :(得分:1)
你忘了逃避冲刺&#39; - &#39;改为:
Regex Matcher = new Regex("</font><font face=\"[\\w\\s-_]+\">[ \\-,:;\\r\\n\\/\\]\\)]+");