我有这段代码
preg_match("/\bHTTP(.)+ (\d{3})/", $string)
在最后一个模式中,我必须检查一个3位数字,该数字可由任何数字组成,但不应创建像404
或401
这样的数字,我该怎么办?
答案 0 :(得分:5)
答案 1 :(得分:1)
说明:
否定前瞻 ?!
查找与指定模式不匹配的文字。
积极的前瞻寻找匹配但不返回的模式。
http://www.regular-expressions.info/lookaround.html
?!
与以下内容不符
图案404|401
404
或401
,因此|
用于替代答案 2 :(得分:1)
您要排除的值越多,这将获得的复杂程度越高,但
preg_match("/\bHTTP(.+) ([0-35-9]\d{2}|4[1-9]\d|40[0235-9])/", $string)
将匹配任何不以4开头的三位数字
或任何以4开头但不以40开头的三位数字,
或以40开头但不是401或404的任何三位数字。