gpt4 book ai didi

javascript - 图像未返回预期的正则表达式

转载 作者:行者123 更新时间:2023-11-29 22:10:38 25 4
gpt4 key购买 nike

我使用以下正则表达式在提要的标签中搜索图像:

var str=items.item(i).getElementsByTagName("content:encoded").item(0).text;
var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i
var urlMatch = str.match(patt1);

然后我在以下标签内打印到控制台 urlMatch[0] 、 urlMatch[1] 和 urlMatch[2] :

<![CDATA[
<p><a href="http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg"><img class="alignleft size-thumbnail wp-image-56646" alt="Emergency" src="http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency-150x150.jpg" width="150" height="150" /></a></p> <p><strong>The HSE has confi
]]>

这将分别返回以下 3 个结果:

http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg,
http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg,
jpg.

谁能给我解释一下这是怎么回事?为什么我没有得到名称中带有 150x150 的那个?这是我需要的。提前感谢您的帮助

最佳答案

您将在第一场比赛中获得多个组,而不是多个比赛。这意味着,urlMatch[0] 是匹配项,urlMatch[1] 是第一个捕获组(第一组括号,顺便说一句与整个匹配项相同),并且urlMatch[2] 是您的模式中的第二组括号(您已将其包裹在文件扩展名周围)。

你需要使用全局 g 标志:

var patt1=/([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/ig;
var urlMatch = str.match(patt1);

导致:

[
"http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency.jpg",
"http://www.highlandradio.com/wp-content/uploads/2013/08/Emergency-150x150.jpg"
]

如果您确实需要捕获组(除了所有匹配项之外),您将不得不使用RegExp.exec()。 .

如果没有,您可以使用非捕获组来提高性能。请注意,在任何情况下都不需要外括号,因此无论如何都可以省略。使用非捕获组,这看起来像:

var patt1 = /[a-z\-_0-9´\/:.]*\.(?:jpg|jpeg|png|gif)/ig;

关于javascript - 图像未返回预期的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com