PHP简单正则表达式

时间:2009-09-16 22:29:35

标签: php regex

我想验证一个字符串,只要它包含长度在7到9之间的'0-9'字符。

我所拥有的是[0-9] {7,9},但这也匹配了一串十个字符,我不想要。

感谢。

2 个答案:

答案 0 :(得分:4)

您需要使用^[0-9]{7,9}$

^匹配字符串的开头,而$匹配结尾。

答案 1 :(得分:3)

如果您想在较大的字符串中找到7-9位数字,可以使用a negative lookbehind and lookahead来验证匹配是否先于数字

(?<![0-9])[0-9]{7,9}(?![0-9])

这会分解为

  • (?<![0-9])确保下一场比赛前面没有数字
  • [0-9]{7,9}根据您的需要匹配7-9位数字
  • (?![0-9])确保下一个字符不是数字

如果您只是想确保整个字符串是一个7-9位数字,请将匹配项锚定到开头和结尾,并使用^和$

^[0-9]{7,9}$