Gibt es einen regulären Ausdruck, mit dem eine Zeichenmenge durch eine andere Menge ersetzt werden kann (wie der Befehl shell tr)?

die Muscheltr Die Befehlsunterstützung ersetzt einen Zeichensatz durch einen anderen. Zum Beispiel,echo hello | tr [a-z] [A-Z] werde übersetzenhello zuHELLO.

In Java muss ich jedoch jedes Zeichen wie folgt einzeln ersetzen

"10 Dogs Are Racing"
    .replaceAll ("0", "0")
    .replaceAll ("1", "1")
    .replaceAll ("2", "2")
    // ...
    .replaceAll ("9", "9")
    .replaceAll ("A", "A")
    // ...
;

Dasapache-commons-lang Bibliothek bietet eine bequemereplaceChars Methode, um einen solchen Ersatz zu tun.

// half-width to full-width
System.out.println
(
    org.apache.commons.lang.StringUtils.replaceChars
    (
        "10 Dogs Are Racing",
        "0123456789ABCDEFEGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
        "0123456789ABCDEFEGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    )
);
// Result:
// 10 Dogs Are Racing

Aber wie Sie sehen, sind die searchChars / replaceChars manchmal zu lang (auch zu langweilig, bitte finden Sie ein doppeltes Zeichen darin, wenn Sie möchten) und können durch einen einfachen regulären Ausdruck ausgedrückt werden[0-9A-Za-z]/[0-9A-Za-z]. Gibt es einen regulären Ausdruck, um das zu erreichen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage