首页 > 解决方案 > 为什么 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上没有找到我的问题的任何答案。每个人都在谈论删除+标志。但我希望它包括在内。

标签: phpregexpreg-replace

解决方案


使用正则表达式,这就是您所需要的:

<?php

$regex = '#\&(amp;)?#';
echo preg_replace($regex, '-', 'Two + Two & One + One ?') . "\n";
echo preg_replace($regex, '-', 'Two + Two &amp; One + One ?') . "\n";

输出:

Two + Two - One + One ? 
Two + Two - One + One ?

你可以在这里看到https://3v4l.org/s1tVW

并在此处使用正则表达式https://regex101.com/r/G7CbKF/1


推荐阅读