2010-09-03 8 views

Antwort

26

s/// für Substitution ist:

$string =~ s/abc/123/; 

Dies wird die erste "abc" in $string mit "123" gefunden ersetzen.

tr/// ist für Transliteration:

$string =~ tr/abc/123/; 

Dies wird alle Vorkommen von "a" innerhalb $string mit "1", alle Vorkommen von "B" mit "2", und alle Vorkommen von "c" ersetzen mit "3".

+4

Vergessen Sie nicht unseren Lieblings-Golf-Putter, 'y ///'! – Daenyth

7

Von perlop: Quote and Quote-like Operators

Beachten Sie, dass tr nicht regelmäßig Ausdruck Zeichenklassen wie \ d oder tut [: lower:]. Der Operator tr ist entspricht nicht dem Dienstprogramm tr (1). Wenn Sie Zeichenketten zwischen unteren/oberen Fällen zuordnen möchten, siehe lc und uc, und im Allgemeinen in Betracht ziehen, den Operator s zu verwenden, wenn Sie reguläre Ausdrücke benötigen.

12

tr/// ist kein Operator für reguläre Ausdrücke. Es eignet sich (und schneller als s///) für die Ersetzung eines einzelnen Zeichens durch ein anderes einzelnes Zeichen oder (mit dem Modifikator d) das Ersetzen eines einzelnen Zeichens durch null Zeichen.

s/// sollte für etwas komplizierter als die engen Anwendungsfälle von tr verwendet werden.

Verwandte Themen