Groovy正则表达式验证带有固定字符和数字的字符串

时间:2019-07-12 06:58:27

标签: regex groovy

试图验证groovy中正则表达式上的字符串输入。正则表达式验证必须允许固定字符M000,后跟数字或“ NA”

我已尝试/^((M00[0-9]|NA){1}/来验证NA是否为真,但会使M0012345无效

预期结果是只有一个Regex来验证“ NA”和M00,然后验证数字是否有效。

def regexStr = /^((M00[0-9]|NA){1}/
return fieldValue.matches(regexStr)

所需结果

  1. M001245-有效
  2. 不适用-有效
  3. M0A123-无效
  4. M01345-无效

1 个答案:

答案 0 :(得分:2)

当前模式错过了外部闭合括号,因此具有不完整的分组结构。您可以省略外部组,并使内部组不捕获(?:

您必须重复匹配数字[0-9]+,并使用锚点$来声明字符串的结尾。您可以从重复分组中省略{1}

如果要匹配它们之一,可以使用:

^(?:M00[0-9]+|NA)$

Regex demo