regex - 正则表达式中是否有类似 $nth / counter 的东西(在 Visual Studio 代码中的文本替换上下文中)?
问题描述
我在一个 javascript 文件中有一个很长的匿名函数数组,我想在函数之前添加一个名称。我想从那开始
[function(){...} ,function(){...} ,...,function(){...}]
到那个
[function foo_1(){...},function foo_2(){...},...,function foo_850(){...}]
我正在使用允许使用正则表达式搜索和替换字符串的 Visual Studio Code。我编写正则表达式没有问题,除了替换标记,这意味着这是您搜索的第 N 个匹配项。
像 $Nth 这样的东西会在文本中第一次出现搜索时返回 1。然后 2 以此类推。
或者甚至更好的 $Nth(45) 将从 45 开始然后 46...
这样的令牌存在吗?
解决方案
您可以使用扩展正则表达式文本生成器
通过正常的 VSC 选择,选择function()
您需要的所有部件。
- 打开查找对话框
- 搜索:
function(
- 选择所有匹配项:Alt+Enter
您可以将查找限制为选择。首先选择零件,在“查找”对话框中,首先要做的是选择Find in Selection
(其中一个按钮或Alt+ L)。
执行命令:根据正则表达式(regex)生成文本
- 第一次匹配表达式按下:(Enter接受默认值
.*
) - 对于生成器表达式:
function foo_{{=i+1}}\(
或function foo_{{=i+45}}\(
- 如果您喜欢生成的内容:Enter
- 如果按下Esc则操作终止
如果您必须经常这样做,您可以使用预定义的正则表达式字符串创建一个键绑定,并可选择使用输入对话框来修改预定义的字符串
{
"key": "ctrl+shift+f7", // or any other key combination
"when": "editorTextFocus",
"command": "regexTextGen.generateText",
"args": {
"originalTextRegex": ".*",
"generatorRegex" : "function foo_{{=i+1}}\\(",
"useInputBox" : true
}
}
推荐阅读
- html - 对第一个孩子和后代选择器感到困惑
- ruby - Ruby -- Get defining class name
- python - 在中线放置中值标签
- java - Can Apache Spark use TCP listener as input?
- ios - swift5 中的 UITabBar.appearance().barStyle 崩溃
- c# - 如何从 ac# api 获取数据集合并将其转换为角度数组
- autofixture - Register custom ISpecimenBuilder only to a particular type
- css - 保护库组件不被消费者设计样式的标准方法
- angular - 什么 Typescript 类型是更改事件?(角度)
- javascript - How can I refactor a lot of similar nested loops in my Matrix class?