2015-04-15 11 views
16

ersetzen in IWie WebStorm/PhpStorm mit regex

#{account_nbr} 

mit

{{account_nbr}} 

in den Fund ersetzen wollen, habe ich versucht, dies:

\#\{()\w+\1\} 

und in der ersetzen , dies:

{{\$1}} 

Die Suche scheint zu funktionieren, aber ich kann die Rückreferenz nicht richtig erhalten.

Was ist los?

Antwort

31

Sie brauchen keine Rückreferenzen, wie Sie sie verwenden.

Dies ist die regex Sie verwenden können:

\#\{(\w+)\} 

Ersatz

{{$1}} 

Wenn Sie \$, eine wörtliche $ verwendet wird, nicht die eigentliche Rückverweis sein sollte.

Regex demo

+0

http://i.imgur.com/WhBQMmO.png deutlich zurück nur als Referenz für ersetzen zu speichern Wort zu sein. Ihre Regexp funktionieren gut =) – funivan

+0

Großartig. Danke für die schnelle Antwort! Bedeutet das, dass die Rückreferenz alles innerhalb der Klammer ist? – ndemoreau

+2

Was ist innerhalb * unescaped * Klammern ist eine * einfangende Gruppe * genannt (http://www.regular-expressions.info/brackets.html). Wenn wir '\ 1' in der Regex selbst oder' $ 1' in der Ersetzungszeichenfolge verwenden, handelt es sich um eine * Rückreferenz * (http://www.regular-expressions.info/refreplacebackref.html). –