本文主要是介绍在PHP中内置的通用的字符簇,了解其中的14大内置的字符簇,并通过正则表达式的例子展现其使用方法及类型匹配的功能(转自:云书)。
1、定义
比如在web编程应用的时候,常常需要检查一个字符串是否"合法", 这样的例子,如手机号码必须是由数字组成,Email的格式是否正确,用户输入的密码是否由英文和数字组成等等。如果要实现这样的验证功能,有时候会对每一个字符都进行检查,或者将每个字符和分隔符全部写出组成一个正则表达式,显然不是一个好办法,因为对每个字符进行遍历,不仅耗时耗力,而且效率也比较低下。所以PHP提供了一种比较方便的定义一个字符集合的办法,这种集合,一般就称为字符簇,一般是用方括号[ ]把字符簇括起来。这样我就可以比较方便的进行正则表达式的应用和过滤了
2、常用字符簇对应的含义
[[:alpha:]]
任何字母
[[:digit:]]
任何数字
[[:alnum:]]
任何字母和数字
[[:space:]]
任何空白字符
[[:upper:]]
任何大写字母
[[:lower:]]
任何小写字母
[[:punct:]]
任何标点符号
[[:xdigit:]]
任何16进制的数字,相当于[0-9a-fA-F]
[[:cntrl:]]
任何ASCII值小于32的字符
[[:blank:]]
任何空格和TAB
[[:graph:]]
任何可打印字符
[[:print:]]
任何可打印字符和空格
[[:<:]]
匹配单词的开始
[[:>:]]
匹配单词的结尾
3、使用案例:
public function testPreg($text) {
$text = preg_replace("/[^[:alpha:]]/u", "", $text); // 过滤 任何字母
$text = preg_replace("/[^[:digit:]]/u", "", $text); // 过滤 任何数字
$text = preg_replace("/[^[:alnum:]]/u", "", $text); // 过滤 任何字母和数字
$text = preg_replace("/[^[:space:]]/u", "", $text); // 过滤 任何空白字符
$text = preg_replace("/[^[:upper:]]/u", "", $text); // 过滤 任何大写字母
$text = preg_replace("/[^[:lower:]]/u", "", $text); // 过滤 任何小写字母
$text = preg_replace("/[^[:punct:]]/u", "", $text); // 过滤 任何标点符号
$text = preg_replace("/[^[:xdigit:]]/u", "", $text); // 过滤 任何16进制的数字
$text = preg_replace("/[^[:cntrl:]]/u", "", $text); // 过滤 任何ASCII值小于32的字符
$text = preg_replace("/[^[:blank:]]/u", "", $text); // 过滤 任何空格和TAB
$text = preg_replace("/[^[:graph:]]/u", "", $text); // 过滤 任何可打印字符
$text = preg_replace("/[^[:print:]]/u", "", $text); // 过滤 任何可打印字符和空格
return $text; // 返回正则过滤后的文本
}