【问题标题】:Referencing a capture group inside the search regex of IntelliJ在 IntelliJ 的搜索正则表达式中引用捕获组
【发布时间】:2019-12-05 00:16:37
【问题描述】:

谈谈IntelliJ、WebStorm等的Replace in Path工具,使用正则表达式。

我知道您可以在 IntelliJ 中的 replacement 字符串中引用捕获组,例如 $n,其中 n 是捕获组的索引。

例如,您可以执行以下查找-替换操作:

Find:    <Foo key=\{([a-z]+)\.key\} />
Replace: <Bar color=\{$1.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=\{$1\.color\} />

但参考 ($1) 似乎不起作用。

【问题讨论】:

    标签: regex intellij-idea replace regex-group jetbrains-ide


    【解决方案1】:

    我刚刚通过尝试弄明白了。在 search 字符串中,您可以使用 \n 引用捕获组,其中 n 是索引。

    在这种情况下,搜索字符串必须是:

    <Foo key=\{([a-z]+)\.key\} />\s*<Bar color=\{\1\.color\} />
    

    而替换字符串必须是:

    <FooBar el=\{$1\} />
    

    奇怪的是它们的引用方式不同。

    【讨论】:

      猜你喜欢
      • 2013-05-07
      • 2014-07-05
      • 2020-02-13
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多