Java正则表达式处理

时间:2011-03-20 01:00:04

标签: java regex

如果我有文字

  

R 26 bla bla bla bla R 25 bla bla R   25/30 bla bla bla S 30/50/30 bla bla

我有正则表达式

[RS] (\\d+|\\d+/\\d+|\\d+/\\d+/\\d+) 

将匹配粗体数据... 现在,我想要一个代码,为我返回粗体表达式+以下数据。

例如,我想要以下几对:

R 26 : bla bla bla bla
R 25 : bla bla
R 25/30 : bla bla bla
S 30/50/30 : bla bla

可能会使这张图片更清晰:

2 个答案:

答案 0 :(得分:2)

你走了!

Pattern pattern = Pattern.compile("([RS] (\\d+|\\d+/\\d+|\\d+/\\d+/\\d+)) ([^RS]*)");

Matcher matcher = pattern.matcher("R 26 bla bla bla bla R 25 bla bla R 25/30 bla bla bla S 30/50/30 bla bla");

while(matcher.find()) {
    System.out.println(matcher.group(1) + " " + matcher.group(3));
}

答案 1 :(得分:0)

替代品的顺序很重要。使用原始正则表达式,第二个和第三个替代方案永远不会匹配。撤销他们的订单可以解决问题:

Pattern regex = Pattern.compile("([RS] (\\d+/\\d+/\\d+|\\d+/\\d+|\\d+)) ([^RS]*)");
相关问题