Ciao a tutti,
chi e' cosi' gentile da spiegarmi cosa fa questa istruzione ?
$temp =~ s/^([^ ]*)\.([^ ]*)\.([^ ]*)\.([^ ]*)/$1/;
Grazie a tutti
Paolo
Ciao a tutti,
chi e' cosi' gentile da spiegarmi cosa fa questa istruzione ?
$temp =~ s/^([^ ]*)\.([^ ]*)\.([^ ]*)\.([^ ]*)/$1/;
Grazie a tutti
Paolo
Quella e` una regular expression (RE).
Nel manuale di Perl c'e` un file apposito per le RE, e sono potentissime.
Il bello e` che sono molto simili in tutti i linguaggi.
$temp =~ s/^([^ ]*)\.([^ ]*)\.([^ ]*)\.([^ ]*)/$1/;
s/.../.../ --> sostituisce l'espressione scritta nel primo pezzo con quella del secondo.
[^ ] --> qualsiasi carattere escluso lo spazio
([...]*) --> zero o piu` ripetizioni, salva il risultato
\. --> il carattere punto
^ --> all'inizio: la stringa deve inziare li`
$1 --> il contenuto della prima parentesi nella RE
In totale sembrerebbe che dovrebbe sostituire a tutto il contentuto della stringa, la parte prima del punto.
Ma nella stringa ci devono essere almeno tre caratteri punto (attaccati o separati da altri caratteri, spazi esclusi)
Dovrebbe essere equivalente a:
$temp =~ s/^([^ ]*)\.[^ ]*\.[^ ]*\.[^ ]*/$1/;
salvo che in questo caso non vengono salvati gli altri pezzi. In Perl i pezzi della RE tra parentesi tonde sono disponibili anche dopo, fino alla prossima RE.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
Capito.
Infatti, provandolo, ho capito che mi ritorna il primo numero di un numero ip
thanx