Как получить число между двумя символами с помощью регулярных выражений Java? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть следующая строка:

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

Я хочу получить строку "8&20.000","16&40.000" между SUB и ,-&succes


Я хочу получить succes data как получить строку с помощью регулярного выражения Java?

Ответы [ 3 ]

0 голосов
/ 10 декабря 2018

Вы можете использовать шаблон SUB[^S]+&success[^S]+ и выбрать тот, который вы хотите после этого.

Два совпадения будут SUB8&20.000,-&succes&09/12/18 и SUB16&40.000,-&succes&09/12/18.

После того, как вы выбрали васможет удалить ненужные вещи с помощью [0-9]+&[0-9.]+.

0 голосов
/ 10 декабря 2018

Я не знаю, правильно ли я отвечаю на ваш вопрос или нет.Но это регулярное выражение даст точную строку, которую вы ищете.

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

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

0 голосов
/ 10 декабря 2018

Используйте это регулярное выражение,

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

Проверьте здесь

...