严格的正则表达式

时间:2014-01-05 00:58:48

标签: php regex

有没有办法让正则表达式不能回到这里?在中,我希望它不返回不是完全 8位的字符串。

preg_match_all( '/\w+\d{8}', 'word123456789', ret );

2 个答案:

答案 0 :(得分:2)

\ w +也会匹配数字。如果你只想返回正好8位数字的字符串,那么可能是:

'/\b[A-Za-z]+\d{8}\b/'

编辑:应该读取仅以字母开头并以正好八位数结尾的字符串。如果您还想要其他内容,请澄清

答案 1 :(得分:0)

您可以使用以下内容:

'\w+(?<!\d)\d{8}\b'

\w+ - 任何字符出现次数<或次>

(?<!\d)\d{8} - 任何8位数字后面没有其他数字。

\b - 字边界。

word12345678          - Match
word123456789         - No Match
1word12345678         - Match
1w123456789rd12345678 - Match