我正在尝试将驼峰式字符串拆分为单个单词,同时将大写字母字符串保持在一起。例如,“fooBarABABFooBar”应该变成“foo bar ABAB foo bar”。有几个要求。像“ABAB”这样的缩写应该保持大写,但其他单词的第一个字母应该小写。我有一些运气使用以下正则表达式分解骆驼案例:
def str = "fooBarABABFooBar"
println str.replaceAll(/(?<=[a-z])(?=[A-Z])/) { ' ' + it }
这让我得到“foo Bar ABABFoo Bar”。我已经能够从这个转到“foo Bar ABAB Foo Bar”,但不能达到所需的输出。有任何想法吗?谢谢!