如何从PHP中的字符串中删除特定的特殊字符?

时间:2011-05-23 04:55:38

标签: php string

我有一个如下所示的字符串,

  

印度时报,2009年10月,a   她独唱的着名艺术评论家   贾瓦尔,贾瓦哈尔卡拉的展览   肯德拉特,2009年9月23日至29日。“很多人   她的画作包括她的自我   肖像,人文学科的压力   奇异的困境和漫无目的“

在上面的字符串中,我需要删除以下字符

, " ' - .

我可以使用任何字符串函数来删除这些字符吗?

4 个答案:

答案 0 :(得分:3)

您可以使用str_replace替换字符数组

$str = "Hindustan Times, Oct 2009, Review by a well known Art critic on her solo exhibition at Jaipur, Jawahar Kala Kendra'th, 23-29th Sep 2009. \"Many of her paintings including her self portrait, stress in humanities singular plight and aimlessness";
$search     = array(',', '"', "'", '-', '.');
$clean      = str_replace($search, ' ', $str); 
echo $clean; 

答案 1 :(得分:1)

或者,您可以选择删除不是字母数字或空格的所有字符,而不是列出您不想要的所有字符:

preg_replace("/[^A-Za-z0-9\s]/", "", $str);

当然,这会删除所有标点符号,也许会删除比你想要的更多的字符。

答案 2 :(得分:0)

使用preg_replace,并用空字符串替换所需的集合。

答案 3 :(得分:0)

JohnP has the right way with using str_replace()。经验法则基本上只使用正则表达式,其他字符串方法不会(或至少不是很好)。

但是,如果你想使用正则表达式,你也可以这样做。

您可以在字符类中输入这些字符,注意要转义字符串分隔符,也要以字面方式使用-,而不是作为范围。

preg_replace('/[,"\'.-]+/', '', $str);

Ideone