不确定如何使用正则表达式执行以下操作...
除了第4位和第5位为70-88或90-99之外,9位数字不能以900-999开头。
到目前为止,我有以下内容:
^9[0-9][0-9]
这只是检查前三位数,我不知道如何合并第二个条件。
答案 0 :(得分:2)
这是正则表达式,它将找到所有以900开头的九位数字符合您的条件:
^9[0-9][0-9](7[0-9]|8[0-8]|9[0-9])[0-9]{4}
上述正则表达式的第二部分是OR条件(使用|符号),它匹配70-79,80-88和90-99模式。在http://regexpal.com/等在线测试仪上进行测试,看看它是如何工作的。如果要排除无效数字,则可能需要更改条件以查找无效数字(例如,以900开头,其中第四个数字为6或更小等)。
答案 1 :(得分:0)
这应符合您需要的数字:
^(?:9[0-9]{2}(?:[79][0-9]|8[0-8])[0-9]{4}|[0-8][0-9]{8})$
9[0-9]{2}(?:[79][0-9]|8[0-8])[0-9]{4}
将匹配以9开头的数字,[0-8][0-9]{8}
将匹配其余数字。 (不以900-999开头与9开头相同)
示例:http://rubular.com/r/6uVWC0cLgX
如果您的口味支持它,您可以使用lookahead:
简化模式^(?:9(?=..(?!89)[7-9])|[0-8])[0-9]{8}$
这里唯一的技巧就是第一个数字。它可以匹配9后跟2位数字和70到99之间的数字(但不是89),然后再输入8位数字。
示例:http://rubular.com/r/UVVkfJ3v3V