Регулярное выражение для разбиения строки только по заглавным словам в Java - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть это ...

 String bigWord = "I AM LOUD But also sensitive";
 String[] words = bigWord.split("[^A-Z| ]");

Я хочу, чтобы первая запись в этом списке была «Я ЕСМЬ ГРОМКО», а вторая - «Но я чувствительный».

Вышеупомянутый RegEx почти работает, но он захватывает первую букву второй записи ..

«Я громкий B»

Как я могу это исправить?

1 Ответ

0 голосов
/ 27 февраля 2019

Используйте Matcher класс, чтобы вы могли легко получить группы.

      String bigWord = "I AM LOUD But also sensitive";

      Pattern pattern = Pattern.compile("([A-Z ]+)? ([A-Z]?.*)");
      Matcher matcher = pattern.matcher(bigWord);
      while(matcher.find()){
         System.out.println(matcher.group(1));
         System.out.println(matcher.group(2));
      }

Вывод:

I AM LOUD
But also sensitive

Ключ в регулярном выражении:

A group of uppercased words an space A group of mixed chars

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...