Regex для получения значений после: из набора строк - PullRequest
0 голосов
/ 10 апреля 2020

Используя регулярное выражение, как я могу получить целочисленные значения после знака ":"

/opt/logs/receiver.log:2
/opt/logs/receiver.log.1:7
/opt/logs/receiver.log.1586498836725:0
/opt/logs/receiver.log.1586501664281:1
/opt/logs/receiver.log.2:3
/opt/logs/receiver.log.3:3

Здесь я хочу получить значения после ":"

возвращаемые значения, такие как: 2,7 , 0,1,3,3

Как это возможно с регулярным выражением

Получение исключения числового формата при использовании ниже logi c

 String[] fileList = response.split("\n");
        // Get the count from all rolled over receiver files

        for (String receiverFile : fileList) {      
        count = count + Integer.parseInt(receiverFile.split(":")[1].trim());
        }

        System.out.println("COUNT:::::::::::::::::::::::::::" + count);

    } catch (Exception e) {
        count = 0;
    }

1 Ответ

0 голосов
/ 10 апреля 2020

Примечание: Основано на комментарии @ anubhava.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String[] testStrs = { "/opt/logs/receiver.log:2", "/opt/logs/receiver.log.1:7",
                "/opt/logs/receiver.log.1586498836725:0", "/opt/logs/receiver.log.1586501664281:1",
                "/opt/logs/receiver.log.2:3", "/opt/logs/receiver.log.3:3" };
        Pattern pattern = Pattern.compile("(?<=:)\\d+");
        for (String str : testStrs) {
            Matcher matcher = pattern.matcher(str);
            while (matcher.find()) {
                System.out.println(str + " -> " + matcher.group());
            }
        }
    }
}

Вывод:

/opt/logs/receiver.log:2 -> 2
/opt/logs/receiver.log.1:7 -> 7
/opt/logs/receiver.log.1586498836725:0 -> 0
/opt/logs/receiver.log.1586501664281:1 -> 1
/opt/logs/receiver.log.2:3 -> 3
/opt/logs/receiver.log.3:3 -> 3

Подробнее об этом можно узнать на https://regex101.com/

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...