Php 如何使用preg_替换为特殊符号

Php 如何使用preg_替换为特殊符号,php,Php,我对preg\u replace有问题。如何保留这些符号:,!'“:;并删除其他?此函数用于立陶宛字母和数字。我已尝试此代码: preg_replace('/[^\p{L}\p{N}\s !?,;:.-]/u', '', $value); 在这种情况下,您必须转义那些在正则表达式中具有特殊含义的字符 preg_replace ('/[^\.,?!\'":;\-]/', '' ,$value); preg_quote也可用于: $toKeep = preg_quote ('.,?!\'":;'

我对
preg\u replace
有问题。如何保留这些符号:
,!'“:;
并删除其他?此函数用于立陶宛字母和数字。我已尝试此代码:

preg_replace('/[^\p{L}\p{N}\s !?,;:.-]/u', '', $value);

在这种情况下,您必须转义那些在正则表达式中具有特殊含义的字符

preg_replace ('/[^\.,?!\'":;\-]/', '' ,$value);
preg_quote也可用于:

$toKeep = preg_quote ('.,?!\'":;', '/');
preg_replace ('/[^' . $toKeep . ']/', '', $value); 

转义?!问题出在哪里?每个项目的转义字符都是“\”