9.2.4 正则表达式中的原子2
原子是正则表达式的最基本的组成单元,而且在每个模式中最少要少包含一个原子。原子是由所有那些未显示指定为元字符的打印和非打印字符组成,具体分为5类。
1. 普通字符作为原子: 如 az、AZ、0~9 等
2. 一些特殊字符和转义后元字符作为原子:
所有标点符号,但语句特殊意义的符号需要转义后才可作为原子,如:\” \’ * + ? . 等
3. 一些非打印字符作为原子: 如:\f \n \r \t \v \cx
4. 使用“通用字符类型”作为原子:如:\d \D \w \W \s \S。
5. 自定义原子表([])作为原子:如:’/[apj]sp/’ ’/[^apj]sp/’
test.php
<?php
/*
* 原子:
*
* 1. 打印字符(a-z A-Z 0-9 !@#$%^&*()_+) 和非打印字符
*
*
*
* \ 转义字符
*
* 一、 可以将有意义的字符转成没有意义的原子字符 (将有意义变成原子)
* 二、 可以将没有意义的字符转成有意义的原子
* 三、 a-z A-Z 0-9 _ 所有没有意义的字符, 加上转义也没有意义的, \@ 都是可加可不加的
*
*
* 2. 所有的数字, 所有的字, 所有的空白, 所有字母, 特殊符号
*
*
* \d 代表任意一个数字 [0-9]
* \D 代表任意一个非数字 [^0-9]
*
*
* \w 代表任意一个字 a-z A-Z 0-9 _ [a-zA-Z_]
* \W 代表任意一个非字 除了 a-z A-Z 0-9 _之外的所有字符 [^a-zA-Z0-9_]
*
*
* \s 代表空白 [\t\n\f\v]
* \S 代表非空白 [^\t\n\f\v]
*
*
* 3. 自己定义原子表
*
* [13579]
* [^a-zA-Z] -从哪到哪区间范围 ^除列表中的
*
*
* 4 点(.)能代表所有的
*
*/
$str = "fdsaf3ds2af4dsaf8dsafdsa";
$reg = '/[^a-zA-Z]/';
if(preg_match($reg, $str, $arr) ) {
echo "正则表达式 <b>{$reg}</b> 和字符串 <b>{$str}</b> 匹配成功!<br>";
print_r($arr);
} else {
echo "没有匹配上<br>";
}
网友评论