使用PHP preg_match()在字符串中查找特定IP地址
我的PHP代码需要确定特定IP地址是否在字符串使用PHP preg_match()在字符串中查找特定IP地址,php,regex,Php,Regex,我的PHP代码需要确定特定IP地址是否在字符串$ipaddress中: preg_match("[1][4]\.[1][0][8]\.[2][4][1]\.[6][9]", $ipaddress ) 出于某种原因,这不起作用。知道为什么它不起作用吗?[1]和1是一样的,创建一个元素的组是没有意义的。您可以直接查找14\.108\.241\.69 缺少的是分隔符。使用Perl正则表达式时,模式必须用分隔符括起来,通常是/、或~ preg_match('/14\.108\.241\.69/', $
$ipaddress
中:
preg_match("[1][4]\.[1][0][8]\.[2][4][1]\.[6][9]", $ipaddress )
出于某种原因,这不起作用。知道为什么它不起作用吗?
[1]
和1
是一样的,创建一个元素的组是没有意义的。您可以直接查找14\.108\.241\.69
缺少的是分隔符。使用Perl正则表达式时,模式必须用分隔符括起来,通常是/
、
或~
preg_match('/14\.108\.241\.69/', $ipaddress)
preg_match('~14\.108\.241\.69~', $ipaddress)
preg_match('#14\.108\.241\.69#', $ipaddress)
preg\u match()
的所有有效用法是否都有效
因为您正在寻找一段简单的字符串,所以实际上不需要
preg_match()
,一个简单的strstr($ipaddress,'14.108.241.69')!==FALSE
同样可以更快地完成任务。[1][4][1][0][8][2][4][1][6][9][/code>写得更好。14\.108\.241\.69
怎么样?<14\.108\.241\.69
或者只是str()
你忘记了分隔符:'14\.108\.241\.69
。既然它是一个文本,为什么不使用strpos
?一开始你不够严格114
,而214
也会匹配。使用^
启动锚点,或\D14\.104\.241\.69
。不需要字符类。perl:/(?。使用quotemeta(\Q
,\E
),无需转义反斜杠。使用负环视,它确保只捕获IP。如果变量仅包含IP,If($ipaddress eq'14.108.241.69'){…}