Perl/Espressioni regolari (oltre): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 548:
ni fa match
 
=== Contesto ===
 
Finora abbiamo visto l'operazione di match "fine a se stessa" cioè atta ad individuare se una certa stringa "corrisponde o no" a certi criteri.
 
Tuttavia se l'espressione regolare invece che in un contesto scalare ( all'interno di un if vuol dire "true" o "false" ) la si assegna ad un array , tutti i valori corrispondenti vengono assegnati all'array (in un unica istruzione !).
Vediamo questo esempio :
$stringa = "questo testo è composto di parole";
@parole = $stringa =~ /([^\s]+)/g;
print "la frase è composta dalle parole:\n";
print join("\n" , @parole)."\n";
 
che produce:
la frase è composta dalle parole:
questo
testo
è
composto
di
parole
NOTA : si è usato [^\s] al posto di \w perchè i caratteri accentati non rientrano fra i caratteri "a-zA-Z_0-9".
 
Vediamo questo altro esempio :
$data = "2007/03/27";
($anno , $mese, $giorno) = $data =~ m%(\d+)/(\d\d)/(\d\d)%g;
print "la data è composta da:\n";
print join("\n" , $anno , $mese , $giorno)."\n";
 
che produce:
la data è composta da:
2007
03
27
[[Categoria:Linguaggio Perl]]