我正在尝试将一个字符串拆分为数组字符串,并在数组字符串中将所有字母作为名称(有时名称有很多单词)。
简单:
car water apple 04:48 05:18 05:46 06:16 06:46 07:16 07:46
bridge night 04:57 05:27 05:56 06:26 06:56 07:26 07:56
结果应如下所示:
[car water apple, 04:48 05:18 05:46 06:16 06:46 07:16 07:46 ]
[bridge night, 04:57 05:27 05:56 06:26 06:56 07:26 07:56]
代码:
if (line.contains(":") && min_value > 0) {
// With this regular expression I am getting it without `car water apple`
String[] newLine = line.replaceFirst(
"(?m)^.*?(?=\\d+:\\d+)", "").split("\\s+");
}
如何解决?
我感谢任何帮助。
答案 0 :(得分:0)
以下是您可以使用的代码:
String line = "car water apple 04:48 05:18 05:46 06:16 06:46 07:16 07:46\nbridge night 04:57 05:27 05:56 06:26 06:56 07:26 07:56";
List<String[]> allMatches = new ArrayList<String[]>();
Matcher m = Pattern.compile("(?m)^(.*?)\\s*((?:\\d+:\\d+\\s*)*)$")
.matcher(line);
while (m.find()) {
allMatches.add(new String[] { m.group(1), m.group(2)});
}
for(String[] object: allMatches){
System.out.println(Arrays.toString(object));
}
请参阅IDEONE demo
输出:
[car water apple, 04:48 05:18 05:46 06:16 06:46 07:16 07:46]
[bridge night, 04:57 05:27 05:56 06:26 06:56 07:26 07:56]