摘要: 将regex与占位符一起使用以查找键和值相同的位置,并仅替换键(在我的情况下,利用ES6对象属性简写语法来清理成千上万行损坏的ES5代码-在这里我找不到自动的eslint规则中的帮助程序,用于--fix)。
示例:
module.exports = {
foo: foo,bar: bar,baz: someFunctionNotCalledBaz,someOther: () => console.log('Defined directly. Not a reference to same name function.')
};
我想要的(清理旧的,破损的代码并为NodeJS项目提供ES6):
module.exports = {
foo,bar,someOther: () => console.log('Defined directly. Not a reference to same name function.')
};
我对正则表达式非常熟悉,我不确定这是否可能。使用Vim或带正则表达式的IDE替换我想找到一种表达方式:
查找所有“单词:单词”(不考虑空格),然后查找值侧的匹配关键字:
(\w+)(:{1}\s{0,})(*SOMEHOW_REFERENCE_FIRST_MATCHING_GROUP_WITHIN_FIND*)
替换为参考(使用已与匹配组一起使用的占位符):
$1
在同一个正则表达式中甚至可以进行这种“回溯”吗?我确实查看了很多与我的查询匹配的帖子,但无济于事。