如果我有文字
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
可能会使这张图片更清晰:
答案 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]*)");