2010-09-03 9 views

risposta

26

s/// è sostituibile:

$string =~ s/abc/123/; 

Questo sostituirà il primo "abc" contenuto nella $string con "123".

tr/// è per traslitterazione:

$string =~ tr/abc/123/; 

Questo sostituirà tutte le occorrenze di "a" all'interno $string con "1", tutte le occorrenze di "b" su "2", e tutte le occorrenze di "c" con "3".

+4

Non dimenticare il nostro putter da golf preferito, 'y ///'! – Daenyth

7

Da perlop: Quote and Quote-like Operators

noti che tr non fa regolari classi di caratteri espressioni quali \ d o [: lower:]. L'operatore tr è non equivalente all'utilità tr (1). Se si desidera mappare stringhe tra inferiore/superiore, vedere lc e uc, e in generale considerare l'utilizzo dell'operatore s se sono necessarie espressioni regolari .

12

tr/// non è un operatore di espressioni regolari. È adatto (e più veloce di s///) per le sostituzioni di un singolo carattere con un altro singolo carattere o (con il modificatore d) sostituendo un singolo carattere con zero caratteri.

s/// deve essere utilizzato per qualcosa di più complicato rispetto ai casi di utilizzo stretto di tr.

Problemi correlati