使用 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
我正在使用正则表达式替换除 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