使用正则表达式分隔句子



我想用特定的单词作为分隔符来分割一个句子

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)

最新更新