可能重複:
Removing non-alphanumeric characters from a string正則表達式刪除除a-zA-Z0-9以外的所有字符?
我可以知道如何維護只包括AZ,az和數字0-9字母和刪除所有的字符,包括& @#%和替換它「 '在PHP中使用strtr和正則表達式?由於
可能重複:
Removing non-alphanumeric characters from a string正則表達式刪除除a-zA-Z0-9以外的所有字符?
我可以知道如何維護只包括AZ,az和數字0-9字母和刪除所有的字符,包括& @#%和替換它「 '在PHP中使用strtr和正則表達式?由於
$new_string = preg_replace('~[^a-zA-Z0-9]+~', '', $string);
[^a-zA-Z0-9]
僅僅是一個否定的字符類(即:匹配不是包含在類中的任何字符)。
正如你可能知道,你可以刪除這些字符,像這樣:
$result = preg_replace("/[a-zA-Z0-9]/", "", $text);
因此,要得到你想要的(保持這些字符,刪除任何其他人)的東西,我們需要「倒置」這樣的:
$result = preg_replace("/[^a-zA-Z0-9]/", "", $text);
你也可以使用\ W,刪除任何 '非wordlike':
$result = preg_replace("/\W/", "", $text);
「word」字符是任何字母或數字或下劃線字符,即任何可以成爲Perl「word」字符的字符。字母和數字的定義由PCRE的字符表控制,並且如果發生特定於語言環境的匹配,則可能會有所不同。例如,在「fr」(法語)語言環境中,一些大於128的字符代碼用於重音字母,並且這些符號由\ w匹配。
strtr函數的效率不能使用正則表達式。
preg_replace('/[^a-zA-Z0-9]/', '', $stringToCheck);
更多http://stackoverflow.com/search?q=a-zA-Z0-9+php – Gordon