试图验证groovy中正则表达式上的字符串输入。正则表达式验证必须允许固定字符M000,后跟数字或“ NA”
我已尝试/^((M00[0-9]|NA){1}/
来验证NA是否为真,但会使M0012345无效
预期结果是只有一个Regex来验证“ NA”和M00,然后验证数字是否有效。
def regexStr = /^((M00[0-9]|NA){1}/
return fieldValue.matches(regexStr)
所需结果
答案 0 :(得分:2)
当前模式错过了外部闭合括号,因此具有不完整的分组结构。您可以省略外部组,并使内部组不捕获(?:
您必须重复匹配数字[0-9]+
,并使用锚点$
来声明字符串的结尾。您可以从重复分组中省略{1}
。
如果要匹配它们之一,可以使用:
^(?:M00[0-9]+|NA)$