在我目前的PHP代码中,我对特殊字符有很多问题,我想用正则表达式替换它们。你知道我怎么做的吗?
我想接受:
所有带重音的字母 所有数字 ()@ -_'&安培;
我的正则表达式:
preg_replace('/[^\p{L}0-9\-]/u', '', $string);
这就是全部。这个正则表达式是制作一个干净的标题来下载文件。
谢谢大家的帮助。 最好的问候,
答案 0 :(得分:2)
您可以在角色类中包含允许的字符:
$replaced = preg_replace("/[^\p{L}0-9()@_'&-]+/u", '', $string);
此外,最好在此处使用量词+
以使替换过程更有效,因为在每次调用中将匹配并替换多个字符。
答案 1 :(得分:2)
当您使用\pL
字母时,可以使用\pN
代码:
preg_replace("/[^\p{L}\p{N}()@_'&-]+/u", '', $string);