正则表达式:为什么这个连接公式([\s\S]*?)不起作用?

正则表达式:为什么这个连接公式([\s\S]*?)不起作用?

我的 html 页面中有此行。

   <h3 class="font-weight-normal" itemprop="name"><a href="javascript:void(0)" class="color-black">I LOVE PRINCE</a></h3>

我想使用正则表达式来匹配我爱王子位于<h3 class="font-weight-normal" itemprop="name"><a href="javascript:void(0)" class="color-black">和之间</a></h3>

我通常在这些情况下使用,比以下情况([\s\S]*?)好得多:(.*?)

寻找:<h3 class="font-weight-normal" itemprop="name"><a href="javascript:void(0)" class="color-black">([\s\S]*?)</a></h3>

但这次不起作用。我做错了什么?

答案1

我找到了解决方案。我的错误。

([\s\S]*?)是一个很好的正则表达式,比 好得多(.*?)。但在我的例子中,我忘记用(0)转义\(0\)

因此,正确的公式应该是:

寻找: <h3 class="font-weight-normal" itemprop="name"><a href="javascript:void\(0\)" class="color-black">([\s\S]*?)</a></h3>

另外,([\s\S]*?) 您可以使用 ([^"]+?) 甚至([^"]*)

相关内容