我想用正则表达式验证这些值:
3.5 inch - 4.0 inch
4.0 inch - 4.5 inch
4.5 inch - 5.0 inch
5.5 inch - 6.0 inch
More than 6.0 inch
Less than 3.5 inch
Unknown
我已经为此编写了上述正则表达式:
(^3\.5\sinch\s-\s4\.0\sinch$)|(^4\.0\sinch\s-\s4\.5\sinch$)|(^4\.5\sinch\s-\s5\.0\sinch$)|(^5\.5\sinch\s-\s6\.0\sinch$)|(^More\sthan\s6\.0\sinch|Less\sthan\s3\.5\sinch$)|(^Unknown$)
但我发现这很长。有没有办法缩短我的条件的代码?
顺便说一下,这个值应该只匹配上面的条件。除此之外的任何其他值都是错误的,例如.4.5英寸 - 6.0英寸
答案 0 :(得分:0)
有人建议将正则表达式缩短一点:
(^(?:(?:^[3-5].[05]\sinch\s-\s[4-6].[05])|(?:More\sthan\s6\.0|Less\sthan\s3.5))\sinch$)|(^Unknown$)
(^ ... \sinch$)
由sinch
完成的事情。(?:(?:^[3-5].[05]\sinch\s-\s[4-6].[05])
第一个非匹配组检查范围[3.0,6.5]中的数字。(?:More\sthan\s6\.0|Less\sthan\s3.5))\sinch$)
第二个非匹配组检查 6.0以上和少于3.5 。(^Unknown$)
未知案例。