PHP如何利用正則替換非法字元?

來源:酷知科普網 3.3W

在php開發中,遇到一個字串帶有一個特殊符號的空格,用trim方法清理不掉這個空格。怎麼辦?我們可以利用正則表示式來替換這些非法字元,下面來看下。

操作方法

(01)首先我們定義一個字串,字串的前面字元是一個正常的空格,字串的後面字元是一個包括特殊字元的空格。然後用trim方法將字串的前後空格去掉。再加上一些輸出程式碼,如圖

PHP如何利用正則替換非法字元?

(02)執行這個php頁面,從頁面結果上可以看到原字元經過trim方法後,成功把字元前的正常空格去掉了,但字元後面的特殊空格並沒有去除掉。

PHP如何利用正則替換非法字元? 第2張

(03)那麼怎樣才能把這些特殊字元去掉?可以使用正則表示式。首先我們定義一個正則表示式:$reg = '/[^0-9a-z]/'

PHP如何利用正則替換非法字元? 第3張

(04)這個正則是什麼意思?中括號裡的字元是能匹配出來的字元,即0到9的數字和a到z的字母數字是都可以匹配出來的,但如果加上了^符號,就是相反的意思。即是除了0-9數字和a-z的字母外的所有字元能匹配查找出來。

PHP如何利用正則替換非法字元? 第4張

(05)然後呼叫php內建的preg_replace方法把所有其他的字元替換掉,該方法就是傳入正則表示式,然後把正則表達匹配出來的字元(上面的是所有非數字和字母的字元)替換成‘’(即空字串),也就是刪除了非數字和字母的字元。

PHP如何利用正則替換非法字元? 第5張

(06)再次執行頁面,可以看到現在字元的前後空格都沒有了,都被去除了。

PHP如何利用正則替換非法字元? 第6張

(07)preg_replace還有另外一個重要的引數,第四個引數,limit,這是做什麼用的?當你在替換字串時,有時並不需要替換所有的不需要的字元,只需要替換前面的某幾個,比如2個,或3個,我們就需要使用這個引數了,傳入2或3。這個引數預設是-1,即全部替換。

PHP如何利用正則替換非法字元? 第7張
熱門標籤