例如,我有一个字符串“esolri.gbn43sh.earbnf”,我想删除最后一个点后的每个字符(即“esolri.gbn43sh”)。我怎么能用正则表达式这样做?
我当然可以使用非RegExp方式来做到这一点,例如:
“esolri.gbn43sh.earbnf” .slice( “esolri.gbn43sh.earbnf” .lastIndexOf()+ 1 “”);
但我想要一个正则表达式。
我尝试了/\..*?/
,但是删除了第一个点。
我正在使用Javascript。非常感谢任何帮助。
答案 0 :(得分:1)
我会使用标准的j而不是正则表达式,因为其他人更容易理解你的代码
var str = 'esolri.gbn43sh.earbnf'
console.log(
str.slice(str.lastIndexOf('.') + 1)
)
答案 1 :(得分:0)
匹配一个点后跟非点,直到字符串
结束let re = /\.[^.]*$/;
与String.prototype.replace
一起使用以获得所需的输出
'foo.bar.baz'.replace(re, ''); // 'foo.bar'
您可能会发现对最后一个.
执行简单子字符串搜索更有效,然后对此索引使用字符串切片方法。
let str = 'foo.bar.baz',
i = str.lastIndexOf('.');
if (i !== -1) // i = -1 means no match
str = str.slice(0, i); // "foo.bar"