Regex 正则表达式因html代码段而失败

Regex 正则表达式因html代码段而失败,regex,Regex,我需要使用正则表达式提取HTML标记的内容。我正在搜索的文本体如下所示: <div class="content"> The Price is <script type="text/javascript">document.write(123())</script> </div> 价格是document.write(123()) 我试图使用这个表达式,但失败了。我需要提取“document.write(123())” (?s)[^正则

我需要使用正则表达式提取HTML标记的内容。我正在搜索的文本体如下所示:

<div class="content">
    The Price is <script type="text/javascript">document.write(123())</script>
</div>

价格是document.write(123())
我试图使用这个表达式,但失败了。我需要提取“document.write(123())”


(?s)[^正则表达式有几个问题:

  • 什么是
    (?s)
  • 您没有考虑
  • 我认为需要转义正斜杠(
    /
    ),即
    \/
这似乎有效():


[^您只是忘记了说明
之间的空格


(?s)[^使用正则表达式从HTML中提取内容肯定是一条疯狂之路。这比使用正则表达式验证电子邮件地址更糟糕

如果您使用的是C#/.NET,我可以推荐它在从任何HTML中提取内容方面做得非常好(有一个例子演示了如何使用它)


如果您正在使用其他技术,只需寻找做同样事情的替代库,您肯定会发现其他人已经解决了这个问题。

因为您不应该这样做。正则表达式失败的最常见原因是因为它是一个错误的工作工具:)您实际上有需要您的需求使用正则表达式?正如我曾经听说的:如果你有一个问题,并且你正在用正则表达式解决它,那么你现在有两个问题::“我有一个需要用正则表达式来做的要求”。你的意思是这就像是正则表达式类中的一个练习或作业?我这样问是因为,否则,没有理由真正使用正则表达式。
(?s)<div class="content">[^<]*<script type="text/javascript">(.*?)</script></div>
<div class="content">[^<]*<script type="text\/javascript">(.*?)<\/script>[^<]*<\/div>