![正则表达式:为什么这个连接公式([\s\S]*?)不起作用?](https://linux22.com/image/1691716/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%9A%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%AA%E8%BF%9E%E6%8E%A5%E5%85%AC%E5%BC%8F%EF%BC%88%5B%5Cs%5CS%5D*%3F%EF%BC%89%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我的 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]*?) 您可以使用 ([^"]+?) 甚至([^"]*)