正则表达式String.split()

mai*_*rgs 3 java regex string

我正在使用java来拆分表单的String:

String stringToSplit = "AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK";
Run Code Online (Sandbox Code Playgroud)

我正在使用

String[] tokens = stringToParse.split("\\s");
Run Code Online (Sandbox Code Playgroud)

沿着空格分割字符串,给出:

tokens = {"AAA","BBB","CCC", "DDD","EEE","FFF","GGG","HHH","III", "JJJ", "KKK"} 
Run Code Online (Sandbox Code Playgroud)

我现在需要做的是在大多数情况下沿着空白分割,但在特定情况下也要保持一些字符串.例如,我希望"CCC DDD"和"III JJJ KKK"在我拆分时保持完整的字符串.所以我希望我的数组标记为:

tokens = {"AAA","BBB","CCC DDD","EEE","FFF","GGG","HHH","III JJJ KKK"}
Run Code Online (Sandbox Code Playgroud)

我会用什么正则表达式?这可能吗?

Wil*_*ill 6

您可以用ccc_ddd替换ccc ddd,然后将下划线转换回空格.

如果你要做很多这样的事情,你可能想投资某种语法解析器