为了账号安全,请及时绑定邮箱和手机立即绑定

我有一个正则表达式数组,我用相同的字符替换。我将如何使用或“|” 用我的正则表达式来降低数组计数?

我有一个正则表达式数组,我用相同的字符替换。我将如何使用或“|” 用我的正则表达式来降低数组计数?

PHP
函数式编程 2022-07-22 17:20:23
我的数组中有更多设置,但为了简单起见,我只使用或“|”放置我想要组合在一起的那些。$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-__-


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信