我的數組中有更多設置,但為了簡單起見,我只使用或“|”放置我想要組合在一起的那些。$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 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消