我想用特定的单词作为分隔符来分割一个句子
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
三月08:00 - 12:15 13:15 - 16:15
Mer. 08:00 - 12:15 13:15 - 16:15
犹太:08:00 - 12:15 13:15 - 16:15
课: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())
}
//Iterate your list.
for (String str : myListe) {
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
可能是你忘了迭代列表" mylist " data &使用matcher.group()代替matcher.group(1)