0

如果标签在标签内,我如何修改以下正则表达式以执行(分别表示)<img><script><script language="..."><script*>

代码:

function seo_friendly_images($content) {

return preg_replace_callback('/<img[^>]+/', 'seo_friendly_images_process', $content);

}

add_filter('the_content', 'seo_friendly_images', 100);
4

2 回答 2

1

这在一定程度上取决于您使用的语言。一些语言支持向前看或向后看(例如,仅在 bar 之后匹配 foo 或仅在 foo 之前匹配 bar)。

这对我来说看起来像 php,它报告有前瞻支持 (http://php.net/manual/en/regexp.reference.assertions.php)。

尝试使用正则表达式

    /<script[^>]+>(?=<img)/ or /<script[^>]+>(?!<img)/

?= 表示积极的展望,而 ?! 表示负面展望。正向向前表示“Foo 后面跟着 Bar”,负向向前表示“Foo 后面没有 Bar”。

于 2012-09-25T05:51:54.347 回答
-1

你可能想试试这个:

return preg_replace_callback('<img[^<]+?>', 'seo_friendly_images_process', $content);

虽然没有测试。

于 2012-09-25T05:57:23.007 回答