匹配包含反斜杠php的多个分隔符

时间:2012-05-12 12:18:25

标签: php preg-match

我有一个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

任何帮助将不胜感激....我googled很多,但找不到解决方案......

3 个答案:

答案 0 :(得分:1)

您正在使用/作为delimiter character,因此当它出现在您的正则表达式中时,您必须将其转义:

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

或者,您可以选择其他分隔符:

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

答案 1 :(得分:1)

将preg_match模式替换为:

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

你应该总是转义像/

这样的字符

答案 2 :(得分:0)

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

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

甚至更好:

if(preg_match('~image/(gif|jpe?g)~',$between))