首页 > 解决方案 > 正则表达式更改引号冲突

问题描述

我正在尝试创建一个 PHP 正则表达式来过滤我在 WordPress 上的内容。" "我想« »用不间断的空格来转换引号。

我还使用 Timber (TWIG) 过滤器来实现这一点。

问题是这个过滤器也会改变url tagsimage tags

例子 :

<a href="http://www.example.com">My link</a>

<a href=« http://www.example.com »>My link</a>

我可以在我的正则表达式中添加什么来避免这种情况?请给我一些帮助。

函数.php

public function add_to_twig( $twig ) {
        $twig->addExtension( new Twig_Extension_StringLoader() );
        $twig->addFilter( new Timber\Twig_Filter( 'changemarks', 'changemarks' ) );
        return $twig;
    }

function changemarks( $text ) {
    $regex = '/"(.*?)"/';
    $subst = '«&#8239;$1&#8239;»';
    $result = preg_replace($regex, $subst, $text);

    return $result;
}

单枝

{{ post.content|changemarks }}

标签: phpregex

解决方案


"在html中制作正则表达式很困难我的解决方案只是通过在文本前后留出一些空格来选择字符串

    $regex = '/ "(.+?)" /';

推荐阅读