如何强制字符串中的最后一个字符在一定范围内?

时间:2012-06-28 11:41:15

标签: regex

我有一个正则表达式,允许值范围'1111' - '999999',不包括任何'0'实例:

^([1-9]){4,6}$

这对我有用,除了我的要求已被修改。我现在必须禁止范围中的最后一个'9',以便最后一个字符的最大值为'8',例如

1111 - 9998, or 1111 - 99998, or 1111 - 999998

如何修改此正则表达式以符合新标准?

2 个答案:

答案 0 :(得分:2)

这个怎么样

^([1-9]){3,5}[1-8]$

答案 1 :(得分:1)

第一个选项:

^[1-9]{3,5}[1-8]$ 

第二个选项:

^(?!.*9$)[1-9]{4,6}$ 

否定前瞻(?!.*9$)不允许9在最后。

第三个选项:

^(?!.*0)(?!.*9$)\d{4,6}$ 

否定前瞻(?!.*0)根本不允许0出现在文本中。