正则表达式不接受单个0但接受10

时间:2016-11-17 14:25:57

标签: regex swift

我有这个正则表达式:

^[ 0-9A-Z] [ 0-9]{4}[0-9][/ ][ 0-9A-z]$

并且工作正常,但现在我必须以这种方式排除构造[ 0-9]{4}[0-9]中的0。

字符串A 0/A应该不匹配

字符串A 10/A应该匹配

所以我必须检查第二组中第一次出现的数字是否为0

我该怎么做? 如果任何事情或一切都不清楚,那就这么说吧。

1 个答案:

答案 0 :(得分:2)

  

所以我必须检查第二组中第一次出现的数字是否为0。

我认为你需要一个负面的预测:

^[ 0-9A-Z] (?! *0)[ 0-9]{4}[0-9][/ ][ 0-9A-Za-z]$
           ^^^^^^^

请参阅regex demo

由于[ 0-9]{4}[0-9]匹配4个数字或空格(可能只有4个空格)且[0-9]匹配数字强制(?! *0)将会生成确保上面的模式与0后面的空格不匹配。