原文地址:http://www.cnblogs.com/devcjq/articles/5095453.html
PHP 正则表达式特殊字符 [:alnum:] [:alpha:] 等
正则表达式中有两个很重要的特殊字符就是"[ ]"。他们可以匹配"[]"之中出现过的字符,比如"/[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