[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: regexp



Il 21 maggio 2011 14:25, Gollum1 ha scritto:
> vorrei sapere come posso fare questa cosa con le regexp.
>
> Quando trovo una stringa del genere:
>
> <A name=197></a>38 <br>
>
> Vorrei sostituirla con Qualcosa del genere:
>
> <h2>Capitolo 38</h2>

Ecco qua quello che ti serve:
echo "<A name=197></a>38 <br>" | \
sed 's/<A name=[0-9]\+><\/a>\([0-9]\+\) <br>/Capitolo \1/'

Probabilmente per le prove che stai facendo in Kate non ti serviranno
tutti gli escape delle parentesi e dei segni + che invece servono sulla shell.

Alcune note:
Quando ti serve usare una parte del match nella sostituzione, basta inserire
quella parte tra parentesi tonde e poi riferirla come ho fatto io sopra
(nota il \1 finale).
Naturalmente quando usi più parentesi tonde, le richiami con \1, \2, \3 ecc.
Questo in sed. Con altri programmi\linguaggi potresti dover usare $1 o altre
forme ancora.

Infine ti consiglio 2 links utilissimi quando si lavora con le regexp:
http://www.nvcc.edu/home/drodgers/ceu/resources/test_regexp.asp
http://xenon.stanford.edu/~xusch/regexp/analyzer.html

Il primo ti permette di fare un match veloce (le prove che adesso stai facendo
con Kate in pratica).
Mentre il secondo analizza la regexp e stampa tutto il flusso logico
permettendoti di individuare eventuali errori.

Ciao

-- 
Mattia


Reply to: