【发布时间】:2011-08-29 17:10:35
【问题描述】:
我在删除特殊字符时遇到问题。我想删除除 "( ) / . % - &" 之外的所有特殊字符,因为我将该字符串设置为标题。
我编辑了原始代码(如下所示):
preg_replace('/[^a-zA-Z0-9_ -%][().][\/]/s', '', $String);
但这不适用于删除特殊字符,例如:“’s”、““”、“—等。
原始代码:(这有效,但它删除了这些字符:“( ) / . % - &”)
preg_replace('/[^a-zA-Z0-9_ -]/s', '', $String);
【问题讨论】:
-
这些“特殊字符”似乎是 UTF-8 等多字节字符编码的编码字符序列。
’是字符’(U+ 2019) 以 UTF-8 (0xE28099) 编码并使用像 Windows-1252 这样的单字节字符编码进行解释时的结果。 -
我实际上是在寻找这个:
preg_replace('/[^a-zA-Z0-9_ -]/s', '', $String);。谢谢!
标签: php regex string preg-replace