preg_match排除一个数字

San*_*cci 2 php regex numbers preg-match regex-negation

我有这个代码

preg_match("/\bHTTP(.)+ (\d{3})/", $string)
Run Code Online (Sandbox Code Playgroud)

在最后一个模式中,我必须检查一个3位数字,可以由任何数字组成,但不应该创建一个数字404或者401,我该怎么办呢?

cod*_*ict 5

您可以使用否定先行断言来确保匹配的字符串没有a 404401as:

preg_match("/\bHTTP(.+) (?!404|401)(\d{3})/", $string)
Run Code Online (Sandbox Code Playgroud)

Rubular Link