Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Arrays 使用带有正则表达式的u.pull从数组中删除_Arrays_Regex - Fatal编程技术网

Arrays 使用带有正则表达式的u.pull从数组中删除

Arrays 使用带有正则表达式的u.pull从数组中删除,arrays,regex,Arrays,Regex,我有两个数组。一个是链接,另一个是表示链接域的简单字符串。它更像是URL的黑名单 links = ['http://www.one.com', ... 'http://www.ten.com'] ignore = ['two, four, nine'] 我试图将正则表达式与pull一起使用,但传递了一个正则表达式,如: for (let i of iignore) { clearedUrls.concat(_.pull(links, `https?:\/\/www.${i}.*`)) }

我有两个数组。一个是链接,另一个是表示链接域的简单字符串。它更像是URL的黑名单

links = ['http://www.one.com', ... 'http://www.ten.com']
ignore = ['two, four, nine']
我试图将正则表达式与
pull
一起使用,但传递了一个正则表达式,如:

for (let i of iignore) {
  clearedUrls.concat(_.pull(links, `https?:\/\/www.${i}.*`))
}

但是没有成功,尽管在Regex101上进行了测试,但表达式是正确的。

使用
删除
,这是以下工作代码:

for (let url of urls) {
  u += `${url.trim()}|`
}

u           = u.substring(0, u.length - 1) // Remove last pipe
let regex   = new RegExp('.*.(' + u + ').com.*', 'g') // https?:\/\/www.(two|four|nine).com.*/g
clearedUrls = clearedUrls.concat(_.remove(links, (obj) => {
  return !obj.match(regex)
}))

你能澄清你的问题吗?问题标题谈到了lodash函数
过滤器
,但在你提到的使用
…原谅,我是无意中写的。我在阅读和思考pull和filter,写了一个,但意思是另一个。没问题。您知道,在lodash中,
pull
不接受正则表达式作为第二个参数。您是否尝试过
\删除
?是的,我现在尝试了一些方法,但似乎都没有效果。
remove
接受正则表达式吗?它接受谓词,您可以将其作为调用正则表达式匹配的函数提供。如果你需要帮助,请告诉我。