php - 为什么 preg_replace 从字符串中删除 + 符号?我想要 + 号包括
问题描述
细绳:Two + Two & One + One ?
如何包括+
标志。我不想同时删除+
符号替换&
为-
. 我用了以下
$string = preg_replace('/&#?[\+\sA-Za-z0-9]+;/i', '-', $string);
它给出了结果:Two Two - One One ?
要求的结果:Two + Two - One + One ?
注意:您可以建议任何 preg_replace 让包含 + 符号 & 替换 & 与 -。我在 WordPress 网站上。
我在stackoverflow上没有找到我的问题的任何答案。每个人都在谈论删除+
标志。但我希望它包括在内。
解决方案
使用正则表达式,这就是您所需要的:
<?php
$regex = '#\&(amp;)?#';
echo preg_replace($regex, '-', 'Two + Two & One + One ?') . "\n";
echo preg_replace($regex, '-', 'Two + Two & One + One ?') . "\n";
输出:
Two + Two - One + One ?
Two + Two - One + One ?
你可以在这里看到https://3v4l.org/s1tVW
并在此处使用正则表达式https://regex101.com/r/G7CbKF/1
推荐阅读
- php - Laravel 6 - 控制器中的更新功能运行但模型未传递给控制器
- asp.net - ASP.NET 突然想要一个斜杠
- mongodb - 如何在猫鼬中检查日期是否小于今天的日期?
- eclipse - Log4J2 - 从 Eclipse 运行时不发生日志记录
- kubernetes - 如何将 n 个不同的配置分配给 n 个 pod
- javascript - 使用 msnodesqlv8 nodejs 连接到数据库
- java - 服务器端请求伪造漏洞
- sql - 触发器不会使用来自另一个实例\DB 的数据插入
- java - 为什么这个 JAVA 代码(DoublyLinkedList)是错误的,stackOverflow
- c - 我可以用另一个#define 指令重新定义宏吗?