PHP中的多个正则表达式
|
有没有更好的方法来处理在PHP(或一般而言)中运行多个正则表达式?
我有下面的代码用破折号替换非字母数字字符,一旦替换发生,我想删除多个破折号的实例。
$slug = preg_replace(\'/[^A-Za-z0-9]/i\', \'-\', $slug);
$slug = preg_replace(\'/\\-{2,}/i\', \'-\', $slug);
有没有更整洁的方式做到这一点?即,设置正则表达式模式来替换一个模式,然后替换另一个模式?
(关于正则表达式,我就像一个在插座上插有叉子的孩子)
没有找到相关结果
已邀请:
3 个回复
邵酮
:
您真正的意思是“用一个连字符替换一个或多个非字母数字字符的所有序列”,这就是
所做的。另外,当您指定不区分大小写的正则表达式时,不需要包含大小写字母,因此我将其删除。
焙恍挝厂熄
淘圃跺枯替
已经没有多个连字符,则可以使用第一个preg_replace调用来避免第二次preg_replace调用,如下所示:
上面的代码将查找非字母数字字符(可选),后跟连字符,然后将匹配的文本替换为单个连字符
。因此无需进行第二次preg_replace调用。