在一个正则表达式中preg_match多个东西

时间:2011-08-30 13:32:47

标签: php regex

我需要一个匹配多个东西的正则表达式。

我试图做的是,如果网址不包含某些字词,则发送邮件。 (.xml,.jpg,.ico)

我的尝试,那不起作用:

if (!preg_match("/(\.xml)|(\.jpg)|(\.ico)/", $url))
mail("mail@mail.com", "the url doesnt contain .xml, .jpg or .ico", $url);

2 个答案:

答案 0 :(得分:5)

你快到了。将三种扩展类型包含在由()分隔的一个|组中,并将.保留在其外部。另外,我在末尾添加了一个$,表示文件扩展名是字符串中的最后一个内容,因此example.xml.com之类的内容不会意外匹配。

if (!preg_match("/\.(xml|jpg|ico)$/", $url)) {

}

答案 1 :(得分:0)

尝试这个

<?php 
$url = "imaeg.ic";
if (!preg_match("/(\.xml|\.jpg|\.ico)/", $url))
   die("mail sent 2");

http://sandbox.phpcode.eu/g/c340b/1