使用preg_replace for a-z A-Z 0-9和Slash

时间:2016-07-08 12:06:51

标签: php regex preg-replace

我正在使用正则表达式替换a-z A-Z 0-9之外的所有内容。我想补充一点,它不会删除Slash(/),但无论如何它都无法工作。我没有发现错误。

谢谢你的帮助!

$string = preg_replace(array('/[^a-zA-Z0-9-]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), $string);

1 个答案:

答案 0 :(得分:1)

你需要逃避正斜线。我会尝试[^-a-z0-9\/]+搜索并替换所有不需要的字符。

$re = "/[^-a-z0-9\\/]+/i"; 
$str = "asdkf\n43435&\$*k((/\\"; 
$subst = ""; 

$result = preg_replace($re, $subst, $str);

这会将字符串 asdkf\n43435&\$*k((/\\ 减少为 asdkf43435k/

请参阅演示https://regex101.com/r/vY2jC7/1

<强>修正: 我忘了添加i修饰符来忽略@ chris85指出的情况,这会导致忽略大写字母。

请参阅演示https://regex101.com/r/vY2jC7/2

中的更新演示