regex 正则表达式用订单号替换文本[已关闭]

7vhp5slm  于 2023-03-20  发布在  其他
关注(0)|答案(2)|浏览(131)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

3天前关闭。
Improve this question
我有一个包含##的单据,用于列表签名。我想用订单号替换##。

first matched ## -> to 1.
second matched ## -> 2.
.... 3.
.... 4.

这是否可以在编辑器中完成,如VS代码等.

aor9mmx1

aor9mmx11#

您可以使用扩展名Regex Text Generator
所需的生成表达式为:{{=i+1}}

pkwftd7m

pkwftd7m2#

您可以在没有扩展名的情况下执行此操作,方法是首先选择所有要更改的##。一种方法是通过查找:##,然后按Alt+Enter选择所有匹配项。
然后运行以下键绑定:

{
  "key": "alt+w",   // whatever keybinding you want
  "command": "editor.action.insertSnippet",
  "args": {
    "snippet": "${CURSOR_NUMBER}"    // 1-based, CURSOR_INDEX is 0-based
  },
  "when": "editorHasSelection"
},

要将find,select all和replace结合在一起,你可以使用我写的扩展Find and Transform。下面是一个示例键绑定,它可以完成你想要的操作(在你的keybindings.json中):

{
  "key": "alt+c",            // whatever keybinding you want
  "command": "findInCurrentFile",
  "args": {
    "description": "increment hashes",
    "find": "##",
    "replace": "${matchNumber}",   
    "postCommands": "cancelSelection"
  }
 }

${matchNumber}从1开始,${matchIndex}从0开始。

相关问题