PHP正则表达式要替换吗?

2022-03-22 00:00:00 regex php preg-replace

我要在字符串中用逗号分隔字母数字(带空格)和非字母数字。

我试过这个.

$str = "This is !@#$%^&";
preg_replace("/([a-z0-9_s])([^a-z0-9_])/i", "$1, $2", $str);

但是我得到了这个结果.

这是!@#$%^&;

如何修复搜索模式才能获得此结果?

这是!@#$%^&;

谢谢。


解决方案

您应该为第二个组否定第一个组中的所有内容,如下所示:

preg_replace("/([a-z0-9_s])([^a-z0-9_s])/i", "$1, $2", $str);

否则,它也会在空格上拆分。

相关文章