正则表达式删除第一个字母,如果它是k和最后一个下划线后的所有内容(包括下划线)

时间:2018-02-19 04:11:00

标签: javascript regex

我有这个RegEx,我需要抛光,如果字符串的第一个字母是k然后删除它并删除最后一个下划线后的所有内容。

(?<=a)[\w\-=~ ]+(?=_) or 
(^.*?(?=k)k)|[_].*$ or
^K|(.*_).*

如果字符串为:

,则有效

kMy新文件(conn) - vital_esxi.dsss

输出:我的新文件(conn) - 至关重要

但未能跟随字符串:

输入:aeeff adlf(adf) - region_ev akjd _pre.docx

输出应为:aeeff adlf(adf) - region_ev akjd

1 个答案:

答案 0 :(得分:2)

你的正则表达式可能更简单:

const regex = /^k?(.*?)\_[^_]*$/;

console.log('aeeff adlf (adf) - region_ev akjd _pre.docx'.replace(regex, '$1'));
console.log('kMy new file (conn) - vital_esxi.dsss'.replace(regex, '$1'));