php - 我如何用空格替换单个的,但如果有多个 s 则不行?

标签 php html regex

我假设正则表达式可以解决问题,但我还没有想出一个可行的方法。我在 PHP 中有一些相当长的字符串需要清理。在某些情况下,  会代替单个空格字符出现,而在其他情况下会出现    (等)。我想用一个空格替换所有单个   出现,但将其他出现的地方留在原处,以便可以保持意图。

有什么想法吗?我想这里可以使用正则表达式,但我一直在努力制作一个正则表达式有一段时间了!

最佳答案

您必须使用负向后视和负向前视以确保周围没有其他 

$str = preg_replace('~(?<!&nbsp;)&nbsp;(?!&nbsp;)~i', ' ', $str);

有关环视的更多信息 here .

关于php - 我如何用空格替换单个的,但如果有多个 s 则不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17752310/

相关文章:

php - 在Linux上使用ImageMagick命令行进行批量转换时,结果损坏

php - 如果 PDO 事务失败,如何重定向到一个页面?

html - 使用 SVG HTML CSS 的高效连续滚动图

regex - 使用 Visual Studio 进行条件替换

php - 我应该指挥什么对象?

php - 按 Enter 时创建一个 <br/>

html - child 使用 ems 和 % 转义父 div 的问题

html - Firefox getBoundingClientRect() 不考虑转换

regex - 有没有类似RegexBuddy的在线正则表达式分析器?

php - 替换所有匹配项,除非被包围或仅被包围