3

我有很多句子需要从所有特殊字符和标点符号中清除(我只想保留字母、数字和空格),例如:

$string = "TB Avrupa ve Türkiye'nin en iyi oranlari ile Lider Bahis Sitesi!!";
$final_title = preg_replace('/[^a-z]+/i', '', $string); 

这将删除所有内容(带空格)我需要保留空格我可以在上一行添加任何内容来实现这一点吗?

预期输出:

TB Avrupa ve Türkiyenin en iyi oranlari ile Lider Bahis Sitesi
4

4 回答 4

4

I want to keep just the letters and numbers and spaces

您可以使用此正则表达式删除除英文字母、数字和空格以外的所有内容:

preg_replace('/[^a-z\d ]+/i', '', $string); 
于 2013-10-25T08:21:09.980 回答
2

只需包含您要保留的任何字符:

'/[^a-z0-9 ]+/i'
于 2013-10-25T08:21:12.927 回答
1

您需要将您的正则表达式更改为:

$final_title = preg_replace('/[^a-z0-9 ]+/i', '', $string);

这将保留数字和空格。


我不确切知道您的要求是什么,但是,ü在某些语言中是有效的字母。

如果你也想保留这些,你需要像这样制作一个正则表达式:

$final_title = preg_replace('/[\p{L}0-9 ]+/i', '', $string);
于 2013-10-25T08:21:09.123 回答
0

尝试这个:

preg_replace('/[^A-Z^a-z^0-9^şŞıİçÇöÖüÜĞğ ]+/i', '', $string); 
于 2013-10-25T08:32:45.830 回答