我有一个相当大的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。
感谢有人看看
此外,应该拆分的模式始终是分号,后面只有一个数字,然后是空格。
答案 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
现在它与以下空格字符匹配。