La prima volta, .*
corrisponde a 5 caratteri a partire dalla posizione zero (scott
). Questo viene sostituito con /
.
/g
significa corrispondere quante più volte possibile, quindi riprova, questa volta inizia dalla posizione cinque.
La seconda volta, .*
corrisponde a 0 caratteri che iniziano alla posizione cinque (stringa vuota). Questo viene sostituito con /
.
La terza volta attraverso, .*
va a partite 0 personaggi che iniziano alla posizione cinque (""), ma c'è un controllo che si assicura che non corrisponde alla stessa posizione di partenza e la lunghezza per due volte di fila. Quindi avanza la posizione e cerca di eguagliare nella posizione sei. Dal momento che è al di fuori della stringa fallisce.
'.' corrisponde a qualsiasi carattere e' * 'corrisponde a 0 oa qualsiasi occorrenza del precedente. Quindi '. *' Significa corrispondere a qualsiasi cosa – bansi
@bansi Quindi perché * non corrisponde a * tutto? – user2864740
'perl -MData :: Dumper -e '$ text =" scott "; $ text = ~ s /(.*)/ print Dumper $ 1/ge'' –