我想使用特定单词作为分隔符来分割句子
Lun. 08:00 - 12:15 13:15 - 16:15 Mar. 08:00 - 12:15 13:15 - 16:15 Mer. 08:00 - 12:15 13:15 - 16:15 Jeu. 08:00 - 12:15 13:15 - 16:15 Ven. 08:00 - 12:15 13:15 - 16:15 ";
因此我想要一个这样的列表:
Lun. 08:00 - 12:15 13:15 - 16:15
Mar. 08:00 - 12:15 13:15 - 16:15
Mer. 08:00 - 12:15 13:15 - 16:15
Jeu. 08:00 - 12:15 13:15 - 16:15
Ven. 08:00 - 12:15 13:15 - 16:15
我从下面的正则表达式开始:
final Pattern pattern = Pattern.compile("((Lun|Mar|Mer|Jeu|Ven|Sam). [0-9 \\-:]*)");
final Matcher matcher = pattern.matcher(horaires);
while (matcher.find())
{
myListe.add(matcher.group())
}
但它给了我这样的结果:
matcher.group(1) = Lun. 08:00 - 12:15 13:15 - 16:15 matcher.group(2) = Lun. 08:00 - 12:15 13:15 - 16:15
你们中的任何人都可以帮我找到正确的正则表达式吗?
最佳答案
尝试将您所拥有的更改为:
String string = "Lun. 08:00 - 12:15 13:15 - 16:15 Mar. 08:00 - 12:15 13:15 - 16:15 Mer. 08:00 - 12:15 13:15 - 16:15 Jeu. 08:00 - 12:15 13:15 - 16:15 Ven. 08:00 - 12:15 13:15 - 16:15 ";
final Pattern pattern = Pattern.compile("((Lun|Mar|Mer|Jeu|Ven|Sam)\\. [0-9 \\-:]*)");
final Matcher matcher = pattern.matcher(string);
List<String> list = new ArrayList<String>();
while (matcher.find())
{
list.add(matcher.group(1));
}
for(String str : list)
{
System.out.println(str);
}
产量:
Lun. 08:00 - 12:15 13:15 - 16:15
Mar. 08:00 - 12:15 13:15 - 16:15
Mer. 08:00 - 12:15 13:15 - 16:15
Jeu. 08:00 - 12:15 13:15 - 16:15
Ven. 08:00 - 12:15 13:15 - 16:15
编辑:看来我无法复制您的代码不起作用的情况(我已经成功做到了一次,但似乎无法再做一次......)。你的代码在我的机器上运行,上面的代码也是如此。
您可以尝试我建议的替代方法,这样答案就不会被删除,至少现在不会。
关于java - 使用正则表达式分隔句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429185/