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