[英]Javascript RegEx replace to conditionally remove part of a string
[英]remove last part of string following '&&&' with JavaScript Regex
我正在尝试在JS中使用正则表达式来删除字符串的最后一部分。 该子字符串以&&&
开头,后跟不是&&&
,并以.pdf
结尾。
因此,例如,最终的正则表达式应采用类似以下的字符串:
parent&&&child&&&grandchild.pdf
并匹配
parent&&&child
我对regex不太满意,所以我最大的努力就是:
.*?(?:&&&.*\.pdf)
匹配整个字符串。 谁能帮我吗?
您可以在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 }
通过在&&&
之前使用贪婪模式 .*
,我们确保匹配**输入中&&&
最后一个实例。
您要删除最后一部分,所以将其替换
var str = "parent&&&child&&&grandchild.pdf" var result = str.replace(/&&&[^&]+\\.pdf$/, '') console.log(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.