正则表达式从字符串中提取数据类型和长度

时间:2014-07-04 11:13:51

标签: regex

我有以下正则表达式,我想将数据类型和长度提取到组中,以便我可以对它们采取行动。

^(an|a|n)\..([0-9]*)|(an|a|n)([0-9]*)

以下数据类型均有效:

  • an..70 - 意思是长达70个字符的字母数字
  • an3 - 意思是字母数字正好3个字符
  • n4 - 包含四位数的数字
  • n..4 - 包含最多四位数的数字

只有'an''n'和'n'是有效数据类型,并且所有类型和数字之间都可以有一个'..'范围指示符(或不是)。

我遇到的问题是当我处理'ang..35'时正则表达式不起作用,因为它在文本中匹配'an',但是如果它找不到任何有效的我想要它是无效的数据类型。

1 个答案:

答案 0 :(得分:1)

  

当我处理' ang..35'它匹配' an'在文中但我希望它无效

然后您还想使用$ end-of-string anchor

例如:

/^(a?n)((?:\.\.)?\d+)$/