удалить все несловарные символы из строки - PullRequest
0 голосов
/ 29 мая 2018

Я хочу удалить все несловарные символы из строки, но хочу сохранить пробел.Пример:

    String a = "Graeme O'Connor Dasha Nicholls  Claire N MacDermott1 • Julia K Catherine Bryant1 Josèô Gil2";
    String b = a.replaceAll("[^\\p{L}]+", " ");
    System.out.println("replaced: " + b);

Ожидаемый результат:

Грэм О'Коннор Клэр N МакДермотт Джулия К Кэтрин Брайант Жозе Жиль

Но я получаю

Грэм О Коннор Клэр Н МакДермотт Джулия К Кэтрин Брайант Хосе Жиль

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Попробуйте что-то вроде этого:

    String a = "Graeme O'Connor Dasha Nicholls  Claire N MacDermott1 • Julia K Catherine Bryant1 Josèô Gil2";
    String b = a.replaceAll(".*?(\\b[\\p{L}']+)[^\\p{L}']*", "$1 ");
    System.out.println("replaced: " + b);

Отпечатки:

replaced: Graeme O'Connor Dasha Nicholls Claire N MacDermott Julia K Catherine Bryant Josèô Gil 
0 голосов
/ 29 мая 2018

Замените не слова и не пробелы и не ' символ, затем сжимайте несколько пробелов в один:

String b = a.replaceAll("[^[\\p{L}\\s']]+", "").replaceAll("\\s+", " ");

вывод:

replaced: Graeme O'Connor Dasha Nicholls Claire N MacDermott Julia K Catherine Bryant Josèô Gil
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...