1

我有一个 php 代码,需要使用 preg_match 匹配以下任何字符串

if(preg_match('/(image/gif)|(image/jpg)|(image/jpeg)/',$between))
{
    echo "Match Found";
}

else

echo "Match Not Found";

但我得到这个错误

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\project\extension.php on line 38

任何帮助将不胜感激......我用谷歌搜索了很多但找不到解决方案......

4

3 回答 3

1

您正在/用作分隔符,因此当它出现在您的正则表达式中时,您必须对其进行转义:

if(preg_match('/(image\/gif)|(image\/jpg)|(image\/jpeg)/',$between))

或者,您可以选择另一个分隔符:

if(preg_match('~(image/gif)|(image/jpg)|(image/jpeg)~',$between))
于 2012-05-12T12:19:57.460 回答
1

用这个替换你的 preg_match 模式:

'/(image\/gif)|(image\/jpg)|(image\/jpeg)/'

你应该总是转义像 / 这样的字符

于 2012-05-12T12:20:04.350 回答
0

只要您想/在正则表达式中使用 -~改为用作正则表达式分隔符:

if(preg_match('~(image/gif)|(image/jpg)|(image/jpeg)~',$between))
               ^-----------                         ^--------

甚至更好:

if(preg_match('~image/(gif|jpe?g)~',$between))
于 2012-05-12T12:20:21.880 回答