我正在使用正则表达式替换a-z A-Z 0-9之外的所有内容。我想补充一点,它不会删除Slash(/),但无论如何它都无法工作。我没有发现错误。
谢谢你的帮助!$string = preg_replace(array('/[^a-zA-Z0-9-]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), $string);
答案 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指出的情况,这会导致忽略大写字母。