Regex 如何剥离一个句子只保留字母、数字和空格

Regex 如何剥离一个句子只保留字母、数字和空格,regex,Regex,我有很多句子需要从所有特殊字符和标点符号中清理出来(我只想保留字母、数字和空格),例如: $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ürki

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

$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

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

$final_title = preg_replace('/[^a-z0-9 ]+/i', '', $string);
这将保留数字和空格


我不知道你的具体要求是什么,但是,
u
在某些语言中是一个有效的字母

如果您还想保留这些,则需要创建如下正则表达式:

$final_title = preg_replace('/[\p{L}0-9 ]+/i', '', $string);
我只想保留字母、数字和空格

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

preg_replace('/[^a-z\d ]+/i', '', $string); 

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

'/[^a-z0-9 ]+/i'
试试这个:

preg_replace('/[^A-Z^a-z^0-9^şŞıİçÇöÖüÜĞğ ]+/i', '', $string); 

预期的结果是什么?哇,几乎所有的答案在同一时间都有相同的答案!regexp的哪个部分使其不区分大小写?是/i吗?@DavidBrossard:
a-z
部分否则要避免
/i
需要使用
/[^a-Za-z\d]+/
@DavidBrossard是结尾的
i
指定。@DavidBrossard
//code>发出模式开始和结束的信号。
i
则是不区分大小写的选项。