学位的正则表达式有效性

时间:2010-07-06 08:50:55

标签: regex

我有一个作业,我应该检查字符串的有效性:

  • N90 - >北,必须有0-90之间的关键度
  • W180 - >学位在91-180之间
  • S270 - >学历在181-270之间
  • E360 - >学历在271-360之间

我怎样才能创建像这样的注册表。

2 个答案:

答案 0 :(得分:2)

不要使用正则表达式。这是正则表达式不适合的那种问题的典型示例。只需将字符串拆分为方向(第一个字符)和数字,然后检查数字是否符合方向所需的条件。

答案 1 :(得分:2)

Regex并不真正理解数字范围,必须将这些数字作为数字序列进行匹配,因此它不是最佳工具。也就是说,这个可以完成,但它会变得丑陋

  

N90 - >北,必须有0-90之间的关键度

N([0-9]|[1-8][0-9]|90)

  

W180 - >的学历在91-180之间

W(9[1-9]|1[0-7][0-9]|180)

  

S270 - >学历在181-270之间

S(18[1-9]|19[0-9]|2[0-6][0-9]|270)

  

E360 - >学位在271-360之间

E(27[1-9]|2[8-9][0-9]|3[0-5][0-9]|360)

参考

相关问题