php - 正则表达式更改引号冲突
问题描述
我正在尝试创建一个 PHP 正则表达式来过滤我在 WordPress 上的内容。" "
我想« »
用不间断的空格来转换引号。
我还使用 Timber (TWIG) 过滤器来实现这一点。
问题是这个过滤器也会改变url tags
和image 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 = '« $1 »';
$result = preg_replace($regex, $subst, $text);
return $result;
}
单枝
{{ post.content|changemarks }}
解决方案
"
在html中制作正则表达式很困难我的解决方案只是通过在文本前后留出一些空格来选择字符串
$regex = '/ "(.+?)" /';
推荐阅读
- swagger - 我可以为 Clockify 自动生成 API 客户端吗?
- extjs4 - ExtJs4 单元格编辑 - 在保存到存储之前修改编辑值
- elasticsearch - Elasticsearch 无法识别 yyyyMMddHHmmssS 日期
- xml - “xsl:copy-of”和“xsl:sequence”有什么区别?
- android - 在某些 Android 设备中,Cordova 不会根据请求发送来源
- reactjs - 如何防止所有路由中的组件渲染?
- javascript - 如何从非捕获组中获取所有不匹配的文本部分
- datetime - 根据当前语言格式化日期时间
- android - Android Studio 3.4 Android Wear SDK 22
- api - 如何将任何 API 密钥添加到 Flutter 应用程序中