Php 检查preg_match函数中的多个表达式
我有一个脚本,它在其中检查输入链接是否为http://或不为(如果为空)。代码如下:Php 检查preg_match函数中的多个表达式,php,regex,preg-match,Php,Regex,Preg Match,我有一个脚本,它在其中检查输入链接是否为http://或不为(如果为空)。代码如下: if(!preg_match('~http://[a-zA-Z0-9]~',$link)) 上面的代码只检查http://链接 我想检查除此之外的多个表达式,比如https://、ftp://等等 使用&&和|无法提供正确的输出 请帮助我编写一个正确的代码,可以使用OR(|)运算符匹配多个表达式 谢谢。您不需要多个&或|在PHP中,您可以使用一个正则表达式检查所有这些协议。将f和ht分组为可选的非捕获组,然后
if(!preg_match('~http://[a-zA-Z0-9]~',$link))
上面的代码只检查http://链接
我想检查除此之外的多个表达式,比如https://、ftp://等等
使用&&和|无法提供正确的输出
请帮助我编写一个正确的代码,可以使用OR(|)运算符匹配多个表达式
谢谢。您不需要多个
&
或|
在PHP中,您可以使用一个正则表达式检查所有这些协议。将f
和ht
分组为可选的非捕获组,然后使s
可选
if(!preg_match('~(?:f|ht)tps?://[a-zA-Z0-9]~',$link))
演示:
另一种方法可能是,然后检查
PHP\u URL\u方案
@chris85 Hi。你能给我看完整的代码行吗?我想检查http://、https://、ftp://和ftps://。