如何使用正则表达式 java 获取两个字符之间的数字?

How get numeric between two character with regex java?

我的字符串如下:

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

我想获取SUB,-&succes

之间的字符串"8&20.000","16&40.000"

我想获取 succes data 如何使用 java 正则表达式获取字符串?

使用这个正则表达式,

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

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

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

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

我不知道我是否正确回答了您的问题。但是这个正则表达式会给出你正在寻找的确切字符串。

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

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