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



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

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

如果字符串为:

kmy新文件(conn(-vital_esxi.dsss

输出:我的新文件(conn(-vital

,但无法以下字符串:

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

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

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

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'));

最新更新