2016-03-14 4 views
1

Это регулярное выражение отлично работает для переменной слова, но оно удаляет все пустое пространство из переменной определения, которая не нужна. Не понимаю, почему.Регулярное выражение для сохранения только букв и пробелов?

String word = "cheese[1]" 

String definition = "[:the quality of being too obviously sentimental]" 

String regex = "[^A-Za-z]+";  // how to get it to exclude whitespace? 

finaldefinition = finaldefinition.replaceAll(regex,"") 

Выход:

слово = сыр

определение = thequalityofbeingtooobviouslysentimental

Желаемый результат:

слово = сыр

определение = качество слишком очевидно, сентиментальные

Спасибо за ваше время.

+0

'" [^ A-Za-Z] + "' –

+0

Или '[^ A-Za-z \ s] +', если вы хотите сохранить вкладки и другие формы пробелов. – Evert

+0

ха-ха спасибо. Это было просто, да?/Facepalm –

ответ

0

Вы ищете это?

public static void main(String[] args) {   
    String[] strs = new String[] {"cheese[1]", "[:the quality of being too obviously sentimental]"}; 
    for (String m: strs){ 
     System.out.println(m.replaceAll("[^a-zA-Z ]", ""));  
} 

Выход:

cheese 
the quality of being too obviously sentimental 
0

Вы можете использовать [^A-Za-z ]+ для:

  • любого характера, за исключением
    • Captial букв
    • строчные буквы
    • заготовки

Или [^A-Za-z\s]+ для:

  • любого характера, за исключением
    • Captial букв
    • строчные буквы
    • пробелы (бланки, вкладки, переносами)

Третий вариант: Replace \s к первым, так что язычки и linebraks получит заготовки

Смежные вопросы