Java arbeitet nicht mit Regex \ s, sagt: ungültige Escape-Sequenz
Möchte ich ersetzen, alle Leerzeichen in einem string mit "+" und alle "ß" mit "ss"... es funktioniert auch für "ß", aber irgendwie hat eclipse nicht lassen Sie mich \s für ein whitespace-Zeichen.. ich habe versucht, "\t" anstelle, aber es geht nicht.. ich bekomme die folgende Fehlermeldung:
Invalid escape sequence (valid ones
are \b \t \n \f \r \" \' \ )
dies ist mein code:
try {
String temp1 = from.getText().toString();
start_from = temp1.replaceAll("ß", "ss");
start_from = start_from.replaceAll("\s", "+");
}
warum geht es nicht? ist es ein problem mit android, eclipse oder was?
vielen Dank im Voraus!
Kommentar zu dem Problem - Öffnen
Ich bin überrascht, dass man sogar kompilieren \N in einem string-literal. Das hinzufügen von \t in einem string-literal schaffen würde, einen regulären Ausdruck mit einem tab-Zeichen anstatt des regulären Ausdrucks mit \t in es, für Sie, müssen Sie \\t im string-literal.
Ich konnte es nicht kompilieren.. eclipse gab mir diese Fehlermeldung, die ich gepostet. Ich wollte nur, damit Sie wissen, was ich versuche zu tun.
InformationsquelleAutor der Frage MJB | 2010-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie entkommen dem Schrägstrich
InformationsquelleAutor der Antwort Rob Di Marco
Das problem ist, dass
\
ist ein escape-Zeichen in java - sowie regex-Muster. Wenn Sie möchten, passen Sie die regex-Muster\n
sagen, und Sie ' D gehen Sie voran und schreiben SieDen regex-Muster würde nicht am Ende wird
\n
: es würde de zu sein, die einen tatsächlichen Zeilenumbruch, da es ist, was"\n"
bedeutet in Java. Wenn Sie möchten, dass die Muster zu backslash beinhalten, müssen Sie sicherstellen, dass Sie escape, backslash, so dass es nicht behandelt, als ein besonderes Zeichen in der Zeichenfolge.InformationsquelleAutor der Antwort David Hedlund
Können Sie mithilfe des java.util.regex.Muster Klasse und so etwas wie
p = Pattern.compile("\s");
in Kombination mitp.matcher(start_from).replaceAll("+")
. Alternativ einfach entkommen, Ihre "\s" Metazeichen "\\s".InformationsquelleAutor der Antwort Dustin