regex java如何在两个字符之间获取数字?

时间:2018-12-10 04:37:07

标签: java regex regex-group regex-greedy boost-regex

我的字符串如下:

  

SUB8&20.000,-&succes&09/12 / 18SUB12&100.000,-&failed&07/12 / 18SUB16&40.000,-&succes&09/12/18

我想获取一个介于"8&20.000","16&40.000"SUB之间的字符串 ,-&succes


我想获取succes data如何使用java regex获取字符串?

3 个答案:

答案 0 :(得分:2)

使用此正则表达式,

SUB([^,]*),-&succes

Java代码

public static void main(String[] args) {
    String s = "SUB8&20.000,-&succes&09/12/18SUB12&100.000,-&failed&07/12/18SUB16&40.000,-&succes&09/12/18";
    Pattern p = Pattern.compile("SUB([^,]*),-&succes");
    Matcher m = p.matcher(s);
    while (m.find()) {
        System.out.println(m.group(1));
    }
}

打印

8&20.000
16&40.000

Check here

答案 1 :(得分:1)

您可以使用模式SUB[^S]+&success[^S]+,然后选择所需的模式。

两个匹配将是SUB8&20.000,-&succes&09/12/18SUB16&40.000,-&succes&09/12/18

选择后,您可以使用[0-9]+&[0-9.]+去除不需要的东西。

答案 2 :(得分:1)

我不知道我是否正确回答了您的问题。但是此正则表达式将提供您要查找的确切字符串。

(?<=SUB)([^,]*)(?=,-&succes) 

https://regex101.com/r/RLFXNf/1