我的数组中有更多设置,但为了简单起见,我只使用或“|”放置我想要组合在一起的那些。$patterns = array();$patterns[1] = "/(?:\:)/";$patterns[2] = "/(?:\-_)/";$patterns[3] = "/(?:\_-)/";$replacements = array();$replacements[1] = "-";$replacements[2] = "-";$replacements[3] = "-";preg_replace($patterns, $replacements, $data['string']);我尝试了不同的尝试,但没有成功。下面是对所需数组进行分组的尝试:$patterns = array();$patterns[1] = "/(?::|-_|_-|)/";$replacements = array();$replacements[1] = "-"我所有的其他数组都有一个独特的$replacements。保留原始设置按我的意愿工作,但我只是想通过将这 3 个分组为 1 来降低数组计数。这个正则表达式实际上按预期工作,但对于我的场景,我不得不按原样保留我的原始设置。它给出了混合结果是因为替换的顺序。在一组中触发替换会产生奇怪的结果。
1 回答

小唯快跑啊
TA贡献1863条经验 获得超2个赞
由于替换是相同的-
,您可以将所有匹配的正则表达式与|
并使用更简单的版本preg_replace
:
$data['string'] = preg_replace('/(?::|-_|_-|)/', '-', $data['string']);
这里(?::|-_|_-|)
将匹配一个:
or-_
或_-
。
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消