我的数组中有更多的设置,但为了简单起见,我只放置了我想使用或“|”组合在一起的数组。$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] = "-"我的所有其他数组都有一个唯一的$replacments。保留原始设置可以按我想要的方式工作,但我只是想通过将这3个数组分组为1来降低数组计数。这个正则表达式实际上按预期工作,但对于我的场景,我不得不保持原始设置不变。由于更换的顺序,它给出了好坏参半的结果。在一组中触发替换给出了奇怪的结果。
1 回答
LEATH
TA贡献1936条经验 获得超6个赞
由于替换是相同的,因此您可以将所有匹配的正则表达式与以下版本结合使用,并使用更简单的版本:-
|
preg_replace
$data['string'] = preg_replace('/(?::|-_|_-|)/', '-', $data['string']);
此处将匹配一个 or 或 。(?::|-_|_-|)
:
-_
_-
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消