c# - 如何使用正则表达式从某些文本中提取脚本标签?

标签 c# regex c#-2.0

我不太了解正则表达式,我正在尝试从一些提取的页面文本中获取所有脚本标记。我尝试过以下模式:

<script.*?>.*?</script>

但这似乎没有返回任何其中包含任何代码的脚本标记。 IE。它来自以下内容:

<script type="text/javascript" src="Scripts/Scipt1.js"></script>
<script type="text/javascript" src="Scripts/Scipt2.js"></script>

<script type="text/javascript">
   function SomeMethod()
   {

   }
</script>

我只会得到以下结果:

<script type="text/javascript" src="Scripts/Scipt1.js"></script>
<script type="text/javascript" src="Scripts/Scipt2.js"></script>

如何退回全部 3 个? (注意。我确实想在结果中保留外部脚本标签)。

最佳答案

默认情况下,. 不匹配换行符,因此您只能得到单行结果。

使用RegexOptions.Singleline来解决这个问题。它更改了 . 的含义以匹配任何字符,包括换行符,因此您也可以获得多行匹配。

不要被这个名字搞糊涂了。另外,不要将其与 RegexOptions.Multiline 混淆,后者是完全不同的(请阅读 IntelliSense 工具提示来了解)。

关于c# - 如何使用正则表达式从某些文本中提取脚本标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467830/

相关文章:

c# - 在 C# 中递归枚举文件和目录

c# - 视觉 C# Express 2010 : how to set language to C# 2. 0

c# - 将数组的一部分添加到列表的内存有效方法

c# - 如何为 Windows Phone 7 解析以下 JSON?

c# - 在 VS2012 中获取 TypeInitializationException,但不是 2010

c# - Excel 互操作 - 取消选择

javascript - 了解 VBScript/Javascript 正则表达式的差异来解决 SubMatch 问题

c# - 在 C# 中使用哈希集从父列表中删除重复列表

regex - R regex - 从末端删除模式

regex - 列出名称由两位数字组成的文件