我正在尝试在JS中使用正则表达式来删除字符串的最后一部分。该子字符串以&&&
开头,后跟不是&&&
的内容,并以.pdf
结尾。
因此,例如,最终的正则表达式应采用类似以下的字符串:
parent&&&child&&&grandchild.pdf
并匹配
parent&&&child
我对正则表达式不太满意,所以我最大的努力就是:
.*?(?:&&&.*\.pdf)
匹配整个字符串。有人可以帮我吗?
答案 0 :(得分:1)
您可以在where p.created_at = (select min(p.created_at) from frunk)
或replace
中使用此贪婪的正则表达式:
match
通过在var s = 'parent&&&child&&&grandchild.pdf';
// using replace
var r = s.replace(/(.*)&&&.*\.pdf$/, '$1');
console.log(r);
//=> parent&&&child
// using match
var m = s.match(/(.*)&&&.*\.pdf$/)
if (m) {
console.log(m[1]);
//=> parent&&&child
}
之前使用贪婪模式 .*
,我们确保在输入中匹配** &&&
的最后一个实例。
答案 1 :(得分:1)
您要删除最后一部分,所以将其替换
var str = "parent&&&child&&&grandchild.pdf"
var result = str.replace(/&&&[^&]+\.pdf$/, '')
console.log(result)