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

标签 javascript regex

我有这个 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/

相关文章:

javascript - 在维护 HTML 的同时避免 JavaScript 注入(inject)?

javascript - 如何使用渐进增强技术来渐进加载缓慢的页面?

javascript - 另存为 PDF : recommend a server solution to receive raw data from client and send back PDF to client?

javascript - 如何在 NightwatchJS 中对元素列表进行断言

regex - 字符串插值的奇怪错误

javascript - 如果数据集名称有多个破折号,如何使用 javascript 设置 div 数据属性?

python - 如何在Python IDLE替换对话框中准确找到 "\n"?

MySQL 正则表达式 : How to match digits in the string with\d?

Ruby - 用于匹配括号的正则表达式?

javascript - 检测 selectionStart 处的单词是否为 URL