本文详解如何用 php 的 `preg_replace()` 高效替换数组中所有形如 `*-*-*-*` 的不定长重复模式为 `***`,重点解析正则逻辑、常见误区及一行式批量处理技巧。
在实际开发中,我们常需清理或标准化含规律性符号组合的文本(如 *-*-*-*、+-+--+ 等)。本例中,目标是将任意长度(≥3组)的 *-*-*...* 模式统一替换为 ***,且需对整个字符串数组批量处理。
关键在于准确描述模式结构:它并非“多个 * 或 - 的混合”,而是严格交替的 * 后跟 -,并以 * 结尾——即 *-*-*-* 可拆解为 (*-) 重复若干次,再加一个末尾 *。因此正则应写作:
$result = preg_replace('/(\*-){3,}\*/', '***', $rows);✅ 正确解析:
❌ 常见错误剖析:
完整可运行示例:
$rows = [
'Blah *-*-*-*-*-*-*-* Blah',
'Blah *-*-*-*-*-*-*-*-* Blah',
'Blah *-*-*-*-*-*-*-*-*-*-*-*-* Blah',
];
$result = preg_replace('/(\*-){3,}\*/', '*
**', $rows);
print_r($result);
// 输出:
// Array (
// [0] => Blah *** Blah
// [1] => Blah *** Blah
// [2] => Blah *** Blah
// )⚠️ 注意事项:
总结:掌握「结构化重复模式」的正则写法((...){n,} + 边界字符)比泛化字符类更精准;善用 preg_replace() 的数组能力,可大幅提升代码简洁性与可维护性。
# php
# 正则表达式
# 字符串数组
# foreach
# 字符串
# 的是
# 定长
# 多个
# 并以
# 如需
# 最短
# 因其
# 再加
# 关键在于
# 如何用
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Windows怎样拦截WPS弹窗广告_Windows拦截WPS弹窗广告设置【步骤】
php删除数据怎么清空表_truncate与delete区别及用法【汇总】
电脑无法识别U盘怎么办 Windows磁盘管理与驱动更新修复识别问题【解决】
如何在Windows上设置闹钟和计时器_系统自带的时钟应用全攻略【生活技巧】
XML的“混合内容”是什么 怎么用DTD或XSD定义
Python函数参数高级用法_默认值与可变参数解析【教程】
Go 语言标准库为何不提供泛型 Contains 方法?
Win11怎么设置按流量计费_Win11限制后台流量消耗【网络】
php485读数据时阻塞怎么办_php485非阻塞读取设置技巧【详解】
Mac版Final Cut Pro入门_Mac视频剪辑基础操作【教程】
mac本地php环境如何开启curl_curl扩展启用与测试步骤详解【汇总】
Linux如何安装Golang环境_Linux下Go语言开发包配置【方法】
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
php删除数据怎么软删除_添加is_del字段标记删除【技巧】
Mac如何设置动态壁纸?(让桌面动起来)
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
如何开启Windows的远程服务器管理工具(RSAT)?(管理服务器)
Go语言中slice追加操作的底层共享机制解析
微信短链接怎么还原php_用浏览器开发者工具抓包获取【方法】
Win11怎么用设置清理回收站_Win11设置清理回收站技巧【步骤】
Win11怎么关闭任务栏小图标_Windows11任务栏角溢出设置
短链接怎么自定义还原php_修改解码规则适配需求【汇总】
Windows10系统怎么查看IP地址_Win10网络连接状态详细信息
Win11任务栏怎么放到顶部_Win11修改任务栏位置方法【详细】
如何在 Python 测试中动态配置 @backoff 装饰器的重试次数
如何快速验证Golang安装是否成功_运行go version和hello world示例
Windows10系统怎么查看CPU温度_Win10性能监视器查看硬件数据
Win11如何设置开机自动联网 Win11宽带连接自动拨号【步骤】
phpstudy本地环境mysql忘记密码_重置mysqlroot密码操作流程【解答】
如何在Golang中写入JSON文件_保存结构体数据到文件
Win11时间不对怎么同步_Win11自动校准互联网时间【设置】
mac怎么安装pip_MAC Python pip安装工具与升级方法【详解】
C#如何序列化对象为XML XmlSerializer用法
Win11怎么关闭任务栏小组件_Windows11隐藏任务栏天气图标
Python解释执行模型_字节码流程说明【指导】
Mac电脑如何恢复出厂设置_Mac抹掉数据并重装系统【安全指南】
如何使用正则表达式提取以编号开头、后跟多个注解的完整代码块
Go 语言标准库为何不提供泛型 Contains 方法:设计哲学与类型系统约束
Win11怎么关闭透明效果_Windows11个性化颜色关闭透明
如何使用Golang实现基本类型比较_Golang比较操作符使用方法
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Mac的Time Machine怎么用_Mac系统备份与数据恢复【完整指南】
php订单日志权限怎么设_php订单日志文件权限设置技巧【技巧】
Windows蓝屏BAD_POOL_HEADER故障详解_蓝屏池损坏错误修复指南
Windows10蓝屏SYSTEM_SERVICE_EXCEPTION_Win10驱动冲突排查
如何优化Golang程序CPU性能_Golang CPU密集型任务优化方法
Python邮件系统自动化教程_批量发送解析与模板应用
win11如何清理传递优化文件 Win11为C盘瘦身删除更新缓存【技巧】
Win10如何卸载Skype_Win10卸载Skype步骤【步骤】
Win11怎么清理C盘下载文件夹_Win11清理下载文件夹技巧【教程】
2026-01-01
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。