Java 正则表达式按空格分割,但忽略单词之间的空格

Java 正则表达式按空格分割,但忽略单词之间的空格,java,regex,Java,Regex,如何在空白处对字符串执行正则表达式拆分,但忽略单词之间的空白 字符串如下所示: 1 IT1103 Kabellose Maus Freemove 5 23.07.2018 30 150,00 我想像这样拆分字符串并将其保存到DataTable中 1 IT1103 Kabellose Maus Freemove 5 23.07.2018 30 150,00 有人能帮忙吗 谢谢 Bonnie您可以使用以下代码: String input ="1 IT1103 Kabellose Maus F

如何在空白处对字符串执行正则表达式拆分,但忽略单词之间的空白

字符串如下所示:

1 IT1103 Kabellose Maus Freemove 5 23.07.2018 30 150,00
我想像这样拆分字符串并将其保存到DataTable中

1
IT1103
Kabellose Maus Freemove
5 
23.07.2018
30 
150,00
有人能帮忙吗

谢谢
Bonnie

您可以使用以下代码:

String input ="1 IT1103 Kabellose Maus Freemove 5 23.07.2018 30 150,00";
final String PATTERN = "(?<=\\d)\\s|\\s(?=\\d)";
String[] array = input.split(PATTERN);
for(String str : array)
{
  System.out.println(str);
}
regex:

解释:

1
IT1103
Kabellose Maus Freemove
5
23.07.2018
30
150,00

(?比Allans解决方案更简单,但更详细:

String tmp = input.replaceAll ("([0-9]) ([0-9a-zA-Z])", "\1\n\2")
String out = tmp.replaceAll ("([a-zA-Z]) ([0-9])", "\1\n\2")
  • 第一个中断,当两个数字或数字和字符串之间为空时
  • 然后,当字符和数字之间出现空白时,将其打破

  • 你认为一个词是什么?你真的应该在你的数据中有字段分隔符。正则表达式在所有情况下都不够聪明。你尝试了什么?拜托。谢谢阿努巴娃。你解决了我的问题。