Groovy скрипт регулярное выражение, чтобы получить цифру - PullRequest
0 голосов
/ 03 июля 2018

У меня есть следующая строка "INCIDENT: (5 активных аварийных сигналов): abc_log_001:" (без двойных кавычек)

Я хочу написать регулярное выражение в java groovy, чтобы получить цифру '5'. Я попробовал следующее, но

    def m = parent =~ /(INCIDENT: \\d+))/;
if(!m)
{
        throw new Exception("Could not parse alarm count from parent : ${parent}");
    }

    def alarmCount = m[0][1];

Выдает ошибку,

неожиданный токен: if @ строка 13, столбец 2. если (! м)

Как это исправить и получить значение?

Спасибо,

1 Ответ

0 голосов
/ 04 июля 2018

Проблема, с которой вы сталкиваетесь, заключается в том, что ваше регулярное выражение искажено и, следовательно, весь ваш код не скомпилируется

def m = parent = ~ / (INCIDENT: \ d +) ) /

Сначала удалите лишние закрывающие скобки.

Во-вторых, ваше регулярное выражение не будет совпадать в любом случае. Вам нужно включить все символы в вашей строке и сгруппировать только числовую часть.

Fix:

def parent = "INCIDENT: (5 active alarms): abc_log_001:"
def m = parent =~ /^INCIDENT: \((\d+).*\).*$/
if (!m) {
    throw new Exception("Could not parse alarm count from parent : ${parent}")
}

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