Php 检查preg_match函数中的多个表达式

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分组为可选的非捕获组,然后

我有一个脚本,它在其中检查输入链接是否为http://或不为(如果为空)。代码如下:

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://。