You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP字符串替换求助:多连字符按规则替换实现问题

正确的连字符替换实现方案

你的问题出在替换顺序上:原代码先把所有单个-替换成空格,导致--和---都被拆成单个-提前替换了,后面的规则根本没机会生效。

正确的逻辑是从最长的匹配项开始替换,也就是先处理三个连字符---,再处理两个连字符--,单个-保持不动即可。

实现代码

$v1 = $_GET['v1'];
// 按长度从长到短依次替换
$name = str_replace('--', ' ', str_replace('---', ' - ', $v1));

验证示例

假设$v1的值是test---abc--def-ghi,替换后结果为:test - abc def-ghi,完全符合规则:

  • ---替换为-
  • --替换为单个空格
  • 单个-保持不变

内容的提问来源于stack exchange,提问作者United Pro Source

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:05:20