2012-02-02 12 views
18

sto cercando di sostituire tutti i tag H2 che contengono il "titolo" classe H1:semplice TextWrangler Grep Sostituire

<h2 class="title">Things</h2> 

sto usando la ricerca multi-file in TextWranger con questo:

<h2 class="title">[^>]*</h2> 

Sono in grado di trovare tutto, ma quando ho colpito sostituisce, sostituisce i miei titoli con la merda di grep.

BEFORE: <h2 class="title">Things</h2> 
AFTER: <h1 class="title">[^>]*</h1> 

Il mio problema è che la ricerca non solo sostituisce i miei tag ma sostituisce anche il mio contenuto con [^>] *. Ho provato anche questo in Aptana e la stessa cosa è accaduta. Gradirei qualche intuizione.

risposta

34

Sembra che tu stia convertendo <h2 class="title"> in h1? Devi usare un backreference nel vostro "sostituire":

Ricerca: <h2 class="title">([^>]*)</h2>

Sostituire: <h1 class="title">\1</h1> (aside- se è un h1 Vuoi ancora di preservare la 'class = 'titolo''?)

Nota le parentesi alla regex di ricerca, che salvano cosa c'è al loro interno.

quindi si utilizza \1 per tirare indietro nel testo sostituire (\ 1 per il primo set di staffe, \ 2 per il secondo, ...)

+0

Grazie, il backreference era proprio il mio problema. –