正則表達式中有兩個很重要的特殊字符就是"[ ]"。他們可以匹配"[]"之中出現過的字符,比如"/[az]/"可以匹配單個字符"a"或者"z";如果把上面的表達式改成這樣"/[a-z]/",就可以匹配任何單個小寫字母,比如"a"、"b"等等。
如果在"[]"中出現了"^",代表本表達式不匹配"[]"內出現的字符,比如"/[^a-z]/"不匹配任何小寫字母!並且正則表達式給出了幾種"[]"的默認值,如下:
'[:alnum:]' 匹配任何字母
Alphanumeric characters: '[:alpha:]' and '[:digit:]'.
'[:alpha:]' 匹配任何字母和數字
Alphabetic characters: '[:lower:]' and '[:upper:]'.
'[:blank:]'
Blank characters: space and tab.
'[:cntrl:]'
Control characters. In ASCII, these characters have octal codes 000 through 037, and 177 ('DEL'). In other character sets, these are the equivalent characters, if any.
'[:digit:]' 匹配任何數字
Digits: '0 1 2 3 4 5 6 7 8 9'.
'[:graph:]'
Graphical characters: '[:alnum:]' and '[:punct:]'.
'[:lower:]' 匹配任何小寫字母
Lower-case letters: 'a b c d e f g h i j k l m n o p q r s t u v w
x y z'.
'[:print:]'
Printable characters: '[:alnum:]', '[:punct:]', and space.
'[:punct:]' 匹配任何標點符號
Punctuation characters: '! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'.
'[:space:]' 匹配空格符
Space characters: tab, newline, vertical tab, form feed, carriage
return, and space.
'[:upper:]' 匹配任何大寫字母
Upper-case letters: 'A B C D E F G H I J K L M N O P Q R S T U V W
X Y Z'.
'[:xdigit:]' 匹配任何16進制數字
Hexadecimal digits: '0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f'.
For example, '[[:alnum:]]' means '[0-9A-Za-z]', except the latter depends upon the 'C' locale and the ASCII character encoding, whereas the former is independent of locale and character set. (Note that the brackets in these class names are part of the symbolic names, and must
be included in addition to the brackets delimiting the bracket expression.)
[$]方括號內包含的是一個匹配字符范圍,前面加上^,即是代表不匹配指定的字符范圍。
$ereg代表的是一個變量,即$是變量的標志,這個式子的整體意思就是:
ereg代表的是一個具有以字母開頭第二個是字母或數字的所有字符串。
例子:
'[:alnum:]' 匹配任何字母
Alphanumeric characters: '[:alpha:]' and '[:digit:]'.
'[:alpha:]' 匹配任何字母和數字
Alphabetic characters: '[:lower:]' and '[:upper:]'.
'[:blank:]'
Blank characters: space and tab.
'[:cntrl:]'
Control characters. In ASCII, these characters have octal codes 000 through 037, and 177 ('DEL'). In other character sets, these are the equivalent characters, if any.
'[:digit:]' 匹配任何數字
Digits: '0 1 2 3 4 5 6 7 8 9'.
'[:graph:]'
Graphical characters: '[:alnum:]' and '[:punct:]'.
'[:lower:]' 匹配任何小寫字母
Lower-case letters: 'a b c d e f g h i j k l m n o p q r s t u v w
x y z'.
'[:print:]'
Printable characters: '[:alnum:]', '[:punct:]', and space.
'[:punct:]' 匹配任何標點符號
Punctuation characters: '! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ' { | } ~'.
'[:space:]' 匹配空格符
Space characters: tab, newline, vertical tab, form feed, carriage
return, and space.
'[:upper:]' 匹配任何大寫字母
Upper-case letters: 'A B C D E F G H I J K L M N O P Q R S T U V W
X Y Z'.
'[:xdigit:]' 匹配任何16進制數字
Hexadecimal digits: '0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f'.
For example, '[[:alnum:]]' means '[0-9A-Za-z]', except the latter depends upon the 'C' locale and the ASCII character encoding, whereas the former is independent of locale and character set. (Note that the brackets in these class names are part of the symbolic names, and must
be included in addition to the brackets delimiting the bracket expression.)
[$]方括號內包含的是一個匹配字符范圍,前面加上^,即是代表不匹配指定的字符范圍。
$ereg代表的是一個變量,即$是變量的標志,這個式子的整體意思就是:
ereg代表的是一個具有以字母開頭第二個是字母或數字的所有字符串。
例子:
preg_replace("/([[:alnum:]]|[[:space:]]|[[:punct:]])+/U", '', $string);
全文:http://www.jb51.net/article/28257.htm