在 IntelliJ 的搜索正则表达式中引用捕获组
Referencing a capture group inside the search regex of IntelliJ
浅谈IntelliJ、WebStorm等的Replace in Path工具,使用正则表达式
我知道您可以在 IntelliJ 中的 replacement 字符串中引用捕获组,例如 $n
,其中 n
是捕获组的索引.
例如,您可以执行以下查找替换操作:
Find: <Foo key=\{([a-z]+)\.key\} />
Replace: <Bar color=\{.color\} />
这会改变这些行:
<Foo key={something.key} />
进入:
<Bar color={something.color} />
但是如果你想像这样找到成对的元素怎么办:
<Foo key={something.key} />
<Bar color={something.color} />
并将它们替换为:
<FooBar el={something} />
如何在 search 字符串中引用捕获组?
我尝试了很多选项,例如:
<Foo key=\{([a-z]+)\.key\} />\s*<Bar color=\{\.color\} />
但参考 (
) 似乎不起作用。
我刚刚通过尝试弄明白了。在 search 字符串中,您可以使用 \n
引用捕获组,其中 n
是索引。
在这种情况下,搜索字符串必须是:
<Foo key=\{([a-z]+)\.key\} />\s*<Bar color=\{\.color\} />
然而,替换字符串必须是:
<FooBar el=\{\} />
奇怪的是它们会被不同地引用。
浅谈IntelliJ、WebStorm等的Replace in Path工具,使用正则表达式
我知道您可以在 IntelliJ 中的 replacement 字符串中引用捕获组,例如 $n
,其中 n
是捕获组的索引.
例如,您可以执行以下查找替换操作:
Find: <Foo key=\{([a-z]+)\.key\} />
Replace: <Bar color=\{.color\} />
这会改变这些行:
<Foo key={something.key} />
进入:
<Bar color={something.color} />
但是如果你想像这样找到成对的元素怎么办:
<Foo key={something.key} />
<Bar color={something.color} />
并将它们替换为:
<FooBar el={something} />
如何在 search 字符串中引用捕获组?
我尝试了很多选项,例如:
<Foo key=\{([a-z]+)\.key\} />\s*<Bar color=\{\.color\} />
但参考 () 似乎不起作用。
我刚刚通过尝试弄明白了。在 search 字符串中,您可以使用 \n
引用捕获组,其中 n
是索引。
在这种情况下,搜索字符串必须是:
<Foo key=\{([a-z]+)\.key\} />\s*<Bar color=\{\.color\} />
然而,替换字符串必须是:
<FooBar el=\{\} />
奇怪的是它们会被不同地引用。