首页 > 解决方案 > 正则表达式中的错误 0 以排除具有类的图像

问题描述

我试图创建一个正则表达式来仅搜索不包含指定类的图像,但服务器给了我0 错误意外的“/”分隔符。

$regex = '/<img((?!(.*?)class=['\"](.*?)nopopup(.*?)['\"](.*?)).*?>/';

现在我的代码是下一个,我需要 preg_match 只在不包含类 nopopup 的图像中工作

$regex      = '/<img.*?>/';

$createImageLink = function($imageTag)
{ 
preg_match('/src="([^"]*)"/i', $imageTag[0], $results);
$srcAttribute = $results[0];
$srcUrl = explode("=", $srcAttribute);
return '<a href=' . $srcUrl[1] . ' class="magnific_popup">'.$imageTag[0].'</a>';
};                                                     

if (isset($article->text))
{
$article->text = preg_replace_callback($regex, $createImageLink, $article->text);
$article->text .= '<script> jQuery( document ).ready(function() { jQuery(".magnific_popup").magnificPopup({ type: "image", enableEscapeKey:true }); });</script>';
}
if (isset($article->text))
{
$article->introtext = preg_replace_callback($regex, $createImageLink, $article->introtext);
$article->introtext .= '<script> jQuery( document ).ready(function() { jQuery(".magnific_popup").magnificPopup({ type: "image", enableEscapeKey:true }); });</script>';
}
break;

错误在哪里?

标签: phppreg-match

解决方案


你必须这样做:

$regex = '/<img(?!(.*?)class=['\"](.*?)nopopup(.*?)['\"](.*?)).*?>/';

在第一行你有多余的(符号

https://regexr.com/4r4er


推荐阅读