c# - .NET Regex 无法在代码中匹配,适用于每个测试工具

标签 c# .net 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[^>]*>");

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

我是否漏掉了一些非常明显的东西?

最佳答案

您忘记对模式字符串中的反斜杠进行转义。

"</?(?!p|a|b|i)\\b[^>]*>"

关于c# - .NET Regex 无法在代码中匹配,适用于每个测试工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/822737/

相关文章:

c# - 使用文件名从服务器 "programmatically"上的客户端上传文件或 "programmatically"将文件名分配给 UploadFile 控件

c# - 为什么单击 ZedGraph 时我的图表上会出现垂直线?

正则表达式匹配行尾 $ 在 Bash 脚本中不起作用

java - 使用 Java 的 replaceAll 替换整个字符串

ruby - 替换 ruby 中括号之间的特定字符

c# - Mono 中的非托管进程

c# - Console当前行怎么写?

c# - 如何从 .NET 中的 Stream 获取 MemoryStream?

.net - 2个进程(应用程序)之间的共享内存

c# - 如何在编辑包含 lambda 表达式的方法后继续调试?