Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式帮助-包括但不显示_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式帮助-包括但不显示

Javascript 正则表达式帮助-包括但不显示,javascript,regex,Javascript,Regex,我有一个this.responseText,很混乱。尝试将我需要的内容分开: 以下是文本: <html> <head><title>Index of /browserify-view/build/source/pic/</title></head> <body bgcolor="white"> <h1>Index of /browserify-view/build/source/pic/</h1>&l

我有一个this.responseText,很混乱。尝试将我需要的内容分开:

以下是文本:

<html>
<head><title>Index of /browserify-view/build/source/pic/</title></head>
<body bgcolor="white">
<h1>Index of /browserify-view/build/source/pic/</h1><hr><pre><a href="../">../</a>
<a href="wd0c9af04bbf54efc9a2f7ba766a6694f2421b1dc.png">wd0c9af04bbf54efc9a2f7ba766a6694f2421b1dc..&gt;</a> 22-Jul-2016 22:29               65180
<a href="thumb-wd20f381801bb51.png">thumb-wd20f381801bb51.png;</a> 22-Jul-2016 22:33               10779
</pre><hr></body>
</html>
你能行

["wd0c9af04bbf54efc9a2f7ba766a6694f2421b1dc.png", "thumb-wd20f381801bb51.png"]
分解正则表达式

var parser = new DOMParser();
var doc = parser.parseFromString(this.responseText, 'text/html');
?首先,不要对正则表达式执行此操作! ! 改用javascript:

然后使用DOM API获取所需的元素:

// Can't use nodes.map here because nodes in a NodeList, not an array
var links = Array.prototype.map.call(nodes, function(element)
{
    // Can't use element.href here because we're in a different document
    return element.getAttribute('href');
});
最后,使用Array.map将节点映射到其href属性:

<a[^>]+href="(?P<x>[^"]+)">
如果你把这些放在一起:

变量exampleResponseText=` 索引/browserify视图/build/source/pic/ 索引/browserify视图/build/source/pic/ `; var parser=新的DOMParser; var doc=parser.parseFromStringexampleResponseText,“text/html”; var nodes=doc.queryselectoral'a:not[href=../]; var links=Array.prototype.map.callnodes,functionelement { 返回元素。getAttribute'href'; };
console.loglinks 这是迄今为止我在这个话题上看到的最好的回答之一:

如果您想快速完成某项工作,我将使用类似于python的方法:


请注意,这是一种糟糕的做法,如果要在更大范围内执行,除了这个html之外,我建议使用html解析器。从长远来看,这将节省大量时间。

如果是,请添加javascript标记。^?=.*:a href |.png |…为什么我会得到负值?怎么了?问题是关于javascriptoh抱歉,但是正则表达式将在js中工作。您可以查看这篇文章,了解如何在javascript中实现scan方法。非常感谢Siguza!
var parser = new DOMParser();
var doc = parser.parseFromString(this.responseText, 'text/html');
var nodes = doc.querySelectorAll('a:not([href="../"])');
// Can't use nodes.map here because nodes in a NodeList, not an array
var links = Array.prototype.map.call(nodes, function(element)
{
    // Can't use element.href here because we're in a different document
    return element.getAttribute('href');
});
<a[^>]+href="(?P<x>[^"]+)">