[PLUTO-help] Controllo Stringa

Pignedoli Luca lucap78 a interfree.it
Mer 14 Apr 2004 17:00:50 CEST


Il problema e' un'altro, io non devo isolare il numero di telefono, ma 
controllare se una stringa contiene dei numeri o delle lettere, questa 
stringa pero' puo' iniziare con uno spazio vuoto, con il segno + o 
direttamente con un numero. Es:

" 61 3 955 0 3500"
" 0522 658955"
"+39 0522 564886"
" +39 0 522 6589 56"
"002556488233"

Come vedi ho un'alta varieta' di possibilita', una diversa dall'altra ma 
tutte quante sono dei numeri di telefono.
Quindi devo fare un controllo che se la stringa contiene un numero di 
telefono allora lancio uno script in perl che pesca da un db il 
corrispettivo nome dell'azienda.

Tieni in considerazione che la stringa puo' anche contenere un nome di 
un'azienda preceduto da uno spazio Es:
" Ciccio"

In questo caso il programma deve continuare.

Ciao e grazie.

sabpll a libero.it ha scritto:

>Penso che basti una semplice espressione regolare per
>individuare il numero di telefono, quindi per isolare le 
>linee contenenti il numero di telefono dovrebbe funzionare
>una semplice pipe:
>
>hylafax | grep -E '^( {0,2}|\+)([0-9]+)'
>
>Il condizionale è di obbligo, poiche sta a te controllare
>il programma hylafax e l'output che produce.
>Il primo pattern (l'espressione tra parentesi) è 
>Se invece ti serve solo il numero di telefono è necessario
>usere sed
>
>hylafax | sed -n 's/^\( \{0,2\}\|+\)\([0-9]\+\).*/\2/p'
>
>è necessario proteggere i caratteri "("  "{" "}" ")" "+"
>con la barra rovesciata affinché assumino il loro
>significato speciale di egrep.
>Ovviamente questo è solo un modo, nemmeno molto elegante,
>ne esistono altri. Puoi anche scrivere uno script in PERL che ha delle 
>espressioni regolari più potenti di grep/egrep
>Fino a qui gli spunti, la programmazione spetta a te, però
>fammi sapere come hai risolto.
>  
>



More information about the pluto-help mailing list