如何在空格上的字符串上进行正则表达式拆分但忽略单词之间的空格?
字符串如下:
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
有人可以帮忙吗?
由于 邦尼
答案 0 :(得分:2)
您可以使用以下代码:
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);
}
<强>输出:强>
1
IT1103
Kabellose Maus Freemove
5
23.07.2018
30
150,00
正则表达式: https://regex101.com/r/MN6juN/2
<强>解释强>
(?<=\\d)\\s|\\s(?=\\d)
是一个正则表达式,仅考虑后跟/前面有数字的空格,因此Kabellose Maus Freemove
将被视为整个字符串。
答案 1 :(得分:1)
比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")