我有这个 RegEx,我需要完善它,如果字符串的第一个字母是 k,则将其删除并删除最后一个下划线之后的所有内容。
(?<=a)[\w\-=~ ]+(?=_) or
(^.*?(?=k)k)|[_].*$ or
^K|(.*_).*
如果字符串是:
k我的新文件 (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'));
关于javascript - 正则表达式删除第一个字母,如果它是 k 和最后一个下划线之后的所有内容(包括下划线),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48859428/