2015-04-15 22 views
16

voglio sostituireCome sostituire in WebStorm/PhpStorm con regex

#{account_nbr} 

con

{{account_nbr}} 

nel ritrovamento, ho provato questo:

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

e nella sostituzione , questo:

{{\$1}} 

La ricerca sembra funzionare ma non riesco a ottenere il backreference correttamente.

Cosa c'è che non va?

risposta

31

Non hai bisogno di backreferences nel modo in cui li stai utilizzando.

Questo è l'espressione regolare si può usare:

\#\{(\w+)\} 

sostituzione dovrebbe essere

{{$1}} 

Quando si utilizza \$, un letterale $ viene utilizzato, non il vero e proprio back-riferimento.

Regex demo

+0

http://i.imgur.com/WhBQMmO.png per intenderci indietro riferimento utilizzato solo per memorizzare parola per sostituire. Il tuo regexp funziona bene =) – funivan

+0

Grande. Grazie per la risposta rapida! Ciò significa che il backreference è tutto all'interno della parentesi? – ndemoreau

+2

Ciò che si trova all'interno delle parentesi * senza caratteri * viene chiamato un * gruppo di acquisizione * (http://www.regular-expressions.info/brackets.html). Quando usiamo '\ 1' nella regex stessa, o' $ 1' nella stringa di sostituzione, è un * back-reference * (http://www.regular-expressions.info/refreplacebackref.html). –