1
我看到這個聲明問題有關正則表達式
$name = ereg_replace("[^A-Za-z0-9.]", "", $name);
是什麼[^A-Za-z0-9.]
和[A-Za-z0-9.]
之間的區別?
根據我對正則表達式的理解,[]
用於包含函數ereg_replace
中替換的所有有效字符。
那麼將^
納入[]
的目的是什麼?
謝謝
我看到這個聲明問題有關正則表達式
$name = ereg_replace("[^A-Za-z0-9.]", "", $name);
是什麼[^A-Za-z0-9.]
和[A-Za-z0-9.]
之間的區別?
根據我對正則表達式的理解,[]
用於包含函數ereg_replace
中替換的所有有效字符。
那麼將^
納入[]
的目的是什麼?
謝謝
初始^
字符類[…]
內反轉的集合,這些字符類中描述的字符。當[A-Za-z0-9.]
與A-Za-z0-9.
描述的字符集中的一個字符匹配時,[^A-Za-z0-9.]
匹配除A-Za-z0-9.
描述的字符之外的任何其他字符。這些其他字符取決於字符串定義的基本字符集。
所以[abc]
比賽要麼a
,b
,或c
和[^abc]
任何其它字符匹配除a
,b
和c
。您的示例代碼將刪除[A-Za-z0-9.]
未描述的任何字符。只留下[A-Za-z0-9.]
的字符。
附註:不推薦使用'ereg_replace',新代碼應該使用'preg_replace'。 – Wrikken 2010-08-03 15:40:55