Java中用于按仅大写字拆分字符串的正则表达式

Java中用于按仅大写字拆分字符串的正则表达式,java,regex,Java,Regex,我有这个 String bigWord = "I AM LOUD But also sensitive"; String[] words = bigWord.split("[^A-Z| ]"); 我希望列表中的第一个条目是“我很大声”,第二个条目是“但也很敏感” 上面的正则表达式几乎有效,但它捕获了第二个条目的第一个字母 我很大声 如何解决此问题?使用Matcher类,以便轻松获取组 String bigWord = "I AM LOUD But also sensitive"

我有这个

 String bigWord = "I AM LOUD But also sensitive";
 String[] words = bigWord.split("[^A-Z| ]");
我希望列表中的第一个条目是“我很大声”,第二个条目是“但也很敏感”

上面的正则表达式几乎有效,但它捕获了第二个条目的第一个字母

我很大声

如何解决此问题?

使用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
regexp中的键是:

一组大写单词一个空格一组混合字符

LOUD后面的空格字符应该在第一个字符串还是第二个字符串中?