2016-05-20 3 views
0

Я новичок в Regex, так что это довольно важный вопрос. Я попытался определить пространство табуляции и заменить его любой буквой, скажем R. Но код, похоже, не работает. Однако я могу получить правильный вывод для символов пространства.Java Regex tab space

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

Выход выходит быть: абс абд абс Абд

Спасибо заранее !!

+3

Это не вкладки, а пробелы. –

+0

Вы, вероятно, напечатали это в среде IDE. Моя IDE тоже, когда я нажимаю вкладку, добавляет определенное количество пробелов вместо фактических вкладок. Таким образом, вы получаете этот результат. – Hackerdarshi

+0

Вы можете использовать '\\ s' для соответствия всем пробелам, включая вкладки. Не уверен, что он отвечает на вопрос, хотя ... – Mena

ответ

1

API Java для регулярных выражений говорит, что \\s будет равным пробелу, поэтому регулярное выражение \\s\\s должно соответствовать двум пробелам и т. Д.

Я не знаю, если это поможет, но попробовать что-то вроде этого

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

это будет заменить каждый пробел с R, если это то, что вы пытаетесь достичь.

+0

System.out.println (str.replaceAll ("\\ s \\ s \\ s", "")); это будет работать для вкладок. Спасибо за вашу помощь. –

0

Используйте \\s+ для соответствия 1 или более символам пробега. Это может быть 1 вкладка или несколько пробелов, которые часто используются вместо вкладок большинством IDE:

System.out.println(str.replaceAll("\\s+","R"));