将字符串拆分为大写字母和驼峰字母

split string in uppercase and camel case halves

我有一组 "UPPERCASE STRING Normal string" 形式的字符串。大写部分由不同数量的单词(从 1 到 3)组成,第二部分有时不存在。我试图将这些字符串分成两个 (es "UPPERCASE STRING" "Normal string") 但我不是 RegEx 大师:谁能帮忙?

怎么样:

^([A-Z]+(?: [A-Z]+)+) (.*?)$

第 1 组中的大写单词和第 2 组中的其余单词

如果你想处理任何语言:

^(\p{Lu}+(?: \p{Lu}+)+) (.*?)$