如何用正则表达式替换WebStorm/PhpStorm

nde*_*eau 19 regex replace phpstorm webstorm

我想替换

#{account_nbr}
Run Code Online (Sandbox Code Playgroud)

{{account_nbr}}
Run Code Online (Sandbox Code Playgroud)

在发现中,我试过这个:

\#\{()\w+\1\}
Run Code Online (Sandbox Code Playgroud)

在替换中,这:

{{\$1}}
Run Code Online (Sandbox Code Playgroud)

该查找似乎有效,但我无法正确获得反向引用.

怎么了?

Wik*_*żew 35

您不需要使用它们的任何反向引用.

这是你可以使用的正则表达式:

\#\{(\w+)\}
Run Code Online (Sandbox Code Playgroud)

应该更换

{{$1}}
Run Code Online (Sandbox Code Playgroud)

使用时\$,使用文字$,而不是实际的反向引用.

正则表达式演示

  • 内部*未转义*括号中的内容称为*捕获组*(http://www.regular-expressions.info/brackets.html).当我们在正则表达式本身中使用`\ 1`,或在替换字符串中使用`$ 1`时,它是*back-reference*(http://www.regular-expressions.info/refreplacebackref.html). (3认同)