.NET Regex无法匹配代码,适用于每个测试工具

Jef*_*utz 4 .net c# regex

对我来说,这个真正让人头晕目眩......

var matches = Regex.Matches("<p>test something<script language=\"javascript\">alert('hello');</script> and here's <b>bold</b> and <i>italic</i> and <a href=\"http://popw.com/\">link</a>.</p>", "</?(?!p|a|b|i)\b[^>]*>");
Run Code Online (Sandbox Code Playgroud)

正则表达式应该捕获任何不是p,a,b或i的HTML标记(打开或关闭).我已经将输入字符串和正则表达式插入到无数的测试页面中,并且每个测试页面都会返回脚本标记(打开和关闭)作为匹配项.但它在代码中绝对不起作用.matches变量的计数为0.

我错过了一些非常明显的东西吗?

Guf*_*ffa 8

你忘了逃避模式字符串中的反斜杠.

"</?(?!p|a|b|i)\\b[^>]*>"
Run Code Online (Sandbox Code Playgroud)