2016-05-20 15 views
0

Ich bin neu in Regex, also ist dies so ziemlich eine grundlegende Frage. Ich habe versucht, Tab-Space zu identifizieren und es durch einen beliebigen Buchstaben ersetzen, sagen R. Aber der Code scheint nicht zu funktionieren. Ich bin jedoch in der Lage, die richtige Ausgabe für Leerzeichen zu bekommen.Java Regex Registerkarte Raum

public static void main(String[] args) { 
     String str = "abs abd abs abd"; 
     System.out.println(str.replaceAll("\\t","R"));  
} 

Der Ausgang kommt heraus: abs abd abd

Vielen Dank im Voraus abs !!

+3

Das sind keine Tabs, sie sind Leerzeichen. –

+0

Sie haben das wahrscheinlich in einer IDE eingegeben. Meine IDE fügt auch, wenn ich Tab drücke, eine bestimmte Anzahl von Leerzeichen anstelle von tatsächlichen Tabs hinzu. So erhalten Sie diese Ausgabe. – Hackerdarshi

+0

Sie können '\\ s' verwenden, um alle Whitespaces einschließlich Tabs zu finden. Nicht sicher, dass es die Frage obwohl beantwortet ... – Mena

Antwort

1

Die Java-API für reguläre Ausdrücke sagt, dass \\s Whitespace entspricht daher die Regex \\s\\s sollte für zwei Leerzeichen und so weiter übereinstimmen.

Ich weiß nicht, ob es aber so etwas wie dies wird jeden Raum ersetzen mit einem R Dieser

public static void main(String[] args) { 
     String str = "abs abd abs abd"; 
     System.out.println(str.replaceAll("\\s","R")); 
    } 

versuchen wird helfen, wenn dies ist, was Sie erreichen wollen.

+0

System.out.println (str.replaceAll ("\\ s \\ s \\ s", "")); Dies funktioniert für Tabs. Danke für Ihre Hilfe. –

0

Verwenden Sie \\s+, um 1 oder mehr Leerzeichen zu entsprechen. Dies könnte 1 Tab oder mehrere Leerzeichen sein, die oft anstelle von Tabs von den meisten IDEs verwendet werden: