groovy脚本正则表达式获取数字

时间:2018-07-03 14:39:26

标签: groovy

我有以下字符串“ 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];

它抛出一个错误

意外令牌:如果@第13行,第2列。     如果(!m)

如何解决这个问题并获得价值?

谢谢

1 个答案:

答案 0 :(得分:0)

您看到的问题是因为您的正则表达式格式错误,因此整个代码无法编译

def m =父== /(INCIDENT:\ d +) /

先删除多余的右括号。

第二,您的正则表达式仍然无法匹配。您需要在字符串中包含所有字符,并仅将数字部分分组。

修复:

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)