在整数上拆分字符串,后跟空格

时间:2014-09-19 05:36:27

标签: java regex string split

我有一个相当大的String我需要拆分,所以我可以把它放到一个数组中。实际上,会有一个分号后跟一个Integer,然后是一个空格,这就是我需要拆分的地方。

比方说,我有一个String

 first aaa;0 second bbb;1 third ccc;2

我需要拆分它以便它变成:

 first aaa;0 
 second bbb;1
 third ccc;2

我认为我可以使用类似的东西:

 Pattern pattern = Pattern.compile(^([0-9]*\s");
 myArray = pattern.split(string_to_split);

我还不太了解RegEx。

感谢有人看看

此外,应该拆分的模式始终是分号,后面只有一个数字,然后是空格。

1 个答案:

答案 0 :(得分:18)

根据以下正则表达式分割您的输入字符串。

(?<=;\\d)\\s

代码:

String s = "first aaa;0 second bbb;1 third ccc;2";
String[] tok = s.split("(?<=;\\d)\\s");
System.out.println(Arrays.toString(tok));

输出:

[first aaa;0, second bbb;1, third ccc;2]

<强>解释

  • (?<=;\d)这里使用了正向观察。它将匹配标记设置在;<number>之后。也就是说,它断言空格字符前面必须是分号和数字。
  • (?<=;\d)\s现在它与以下空格字符匹配。
  • 根据匹配的空格拆分输入字符串将为您提供所需的输出。