Как убрать пробел в после апострофа в регулярных выражениях

Сломал всю голову, есть задача: получаем текст, каждое слово данного текста выводим с новой строки. знаки припенания и пр. не учитываем.. Но в тексте есть подвох а имено слова с апострофом и далее идующим пробелом аля: it' s; Мой метод данный пробел определяет как разделитель и соответственно выводит не it's а, it' \n s. Как сделать так, чтобы он не учитывал пробел именно после апостро в регулярном выражении?

public static String splitTextIntoWords(String text) {

String regex = "[a-zA-Z,']{0,}[^, ;, ., \\-, 0-9]";
String result = "";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(text);
while(matcher.find()) {
  int start = matcher.start();
  int end = matcher.end();

  result += text.substring(start,end) + System.lineSeparator();

}

return result;`

Ответы (1 шт):

Автор решения: ulxanxv

Выглядит довольно некрасиво, что после апострофа идёт пробел, поэтому его действительно лучше убрать, заодно вы лишитесь этой проблемы

Паттерн написан исключительно для поиска слов (у вас, вижу, немного другое, но смысл в любом случае понятен)

final String text = "Hello, it' s me. How are you?";
final Pattern pattern = Pattern.compile("[a-zA-Z']+");

final List<String> collect = pattern.matcher(text.replaceAll("'\\s+", "'"))
        .results()
        .map(MatchResult::group)
        .collect(Collectors.toList());

System.out.println(collect); // [Hello, it's, me, How, are, you]
→ Ссылка