Php preg_replace删除无效字符(允许utf-8)
在导出之前,我使用以下函数清理字符串:Php preg_replace删除无效字符(允许utf-8),php,regex,Php,Regex,在导出之前,我使用以下函数清理字符串: function cleanString($source) { $source = str_replace('&', 'and', $source); $source = preg_replace('~[^\p{L}\p{N}]++~u', ' ', $source); return trim($source); } 这很好,但我想修改它以允许,(逗号)和括号(和) 目前正在发生的是: 名称、品牌名称(部分和标语)==>命
function cleanString($source) {
$source = str_replace('&', 'and', $source);
$source = preg_replace('~[^\p{L}\p{N}]++~u', ' ', $source);
return trim($source);
}
这很好,但我想修改它以允许,
(逗号)和括号(
和)
目前正在发生的是:
名称、品牌名称(部分和标语)
==>命名一些品牌名称和标语
如何更新上述正则表达式模式以允许逗号和括号
我尝试了以下方法:$source=preg\u replace('~[^\p{L}\p{N}]+++u\,\(\),'''$source)代码>我得到了错误:未知修饰符“\”
有什么想法吗?您可以在否定字符类中包含(
,)
和,
:
$source = preg_replace('~[^\p{L}\p{N}(),]+~u', ' ', $source);
在字符类中,不需要转义括号。@zoltamagyar括号不在字符类内。这里也不需要使用++
。