我有以下字符串“ 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)
如何解决这个问题并获得价值?
谢谢
答案 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)