regex 用于查找字符串中第二次出现的域的正则表达式

ukxgm1gy  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(228)

我尝试在Google App Script中使用regex提取字符串中第二次出现的Web域。在下面的示例中,您可以看到它返回duckduckgo.com和chicaspoderosas.org

<a rel="nofollow" class="result__a" href="//duckduckgo.com/l/?uddg=https%3A%2F%2Fchicaspoderosas.org%2Fabout%2F&amp;rut=6df21641031fd7b57d82fcdbc2312bc4b27034927655759d8e270840fae4fab1">ABOUT - Chicas Poderosas</a>

当第二个域有一个子域,如www,使用下面的正则表达式时,我可以毫无问题地做到这一点,但当第二个域没有子域时,我似乎无法正确地提取目标。
当子域存在时工作的当前服务器:

var regExp = new RegExp("(www.[a-z]+.[a-z]+.[a-z])", "gi");

我哪里做错了?

3pmvbmvn

3pmvbmvn1#

您可以从匹配href开始,后跟示例字符串中可能的url格式的2倍,并使用捕获组(其中值在组1中)作为您想要获取的第二个url。
假设//是示例数据中url的开始:

\bhref="(?:https?(?:%3A|:))?(?:%2F%2F|\/\/)[^\s"]*?((?:https?(?:%3A|:))?(?:%2F%2F|\/\/)[^\s"]*)

Regex demo

相关问题