Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,我试图在JS中使用正则表达式删除字符串的最后一部分。此子字符串以&&&开头,后面是非&&&的内容,最后是.pdf 例如,最后一个正则表达式应该采用如下字符串: parent&&&child&&&grandchild.pdf 和匹配 parent&&&child 我对regex不是很在行,所以我最大的努力是: .*?(?:&&&.*\.pdf) 匹配整个字符串。有人能帮我吗?你可以在replace

我试图在JS中使用正则表达式删除字符串的最后一部分。此子字符串以
&&&
开头,后面是非
&&&
的内容,最后是
.pdf

例如,最后一个正则表达式应该采用如下字符串:

parent&&&child&&&grandchild.pdf
和匹配

parent&&&child
我对regex不是很在行,所以我最大的努力是:

.*?(?:&&&.*\.pdf)

匹配整个字符串。有人能帮我吗?

你可以在
replace
match
中使用这个贪婪的正则表达式:

var s='parent&&&child&&grant.pdf';
//使用替换
var r=s.replace(/(.*)&&&&.\.pdf$/,“$1”);
控制台日志(r);
//=>父项和子项
//使用火柴
var m=s.match(/(.*)&&&&.*\.pdf$/)
如果(m){
console.log(m[1]);
//=>父项和子项

}
如果要删除最后一部分,请将其更换

var str=“parent&&&child&&grant.pdf”
var result=str.replace(/&&&[^&]+\.pdf$/,'')

console.log(result)
这个答案的问题是,如果孙子字符串包含一个
&
字符串,它就会断开。@DavidJ。样本串没有,所以我做了一个假设。是的,这不是最好的,但在某些情况下可以做到。就我个人而言,我会一分为二。你是对的,一分为二可能更有效。谢谢你的提示。