使用 preg_replace 作为 a-z A-Z 0-9 和斜杠

Using preg_replace for a-z A-Z 0-9 and Slash

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

感谢您的帮助!

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

您需要转义正斜杠。我会尝试 [^-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