关于正则表达式
许多朋友不会写正则表达式,帮忙写了许多。正则看起来像天文,其实不然,它非常简单。
正则表达式,只要理解以下几点,就能轻松掌握。
基本语法:界定符、原子、量词、边界控制、模式单元
一、界定符:表示一个正则表达式的开始和结束
/中间就是正则的内容/
#中间就是正则的内容#
{中间就是正则的内容}
例如:
$pattern=’/[0-9]/’;
$pattern=’#[0-9]#’;
一般使用//,尽量不要用{};
二、原子:正则中最小的匹配单位
1、可见原子(可见的字符标点)
文字匹配(例如中文),先转换为UNICODE,再匹配;
匹配运算符(如+-*/$\等),要先转义,前面加\。
2、不可见原子(例如空格、制表符、回车)
空格直接用空格匹配,tab制表符用\t,回车换行符用\n,
三、元字符
1、定义原子的赛选方式,把某一类原子归类,简化正则书写方式
| 或者的意思,匹配两个或者多个分支的选择;
[] 匹配方括号中的任意一个原子;
[^] 匹配方括号中原子之外的原子。
2、定义原子的集合
. 匹配除换行符之外的任意字符。(差不多就是所有符号了);
\d 匹配任意一个十进制数字,即[0-9];
\D 匹配任意一个非十进制数字,即[^0-9];
\s 匹配一个不可见原子,即[\n\t\f\v\r];
\S 匹配一个可见原子,即[^\n\t\f\v\r];
\w 匹配任意一个数字、字母或下划线,即[0-9a-zA-z_];
\W 匹配任意一个非数字、非字母、非下划线的原子,即[^0-9a-zA-Z_];
四、量词,匹配前面的原子次数
{n} 刚好匹配n次
{n,} 匹配n次以上
{n,m} 匹配最少n次,最多m次
*匹配任意次
+ 匹配至少一次
? 匹配0或1次
五、边界控制。用于控制匹配的开始与结束位置
^匹配字符串开始的位置
$匹配字符串结尾的位置
()匹配其中的整体为一个原子,里面可以放正则
五、模式单元
贪婪模式(默认)、懒惰模式
贪婪模式(模式)取最长匹配:$pattern = ‘/imdupeng/’;
懒惰模式(结尾加U)取最短匹配:$pattern=’/imdupeng/U’;
六、常见修正模式
U 懒惰匹配
i 忽略英文字母大小写
x 忽略空白
s 让元字符‘.’匹配包括换行符在内的所有字符
e 这个即将取消
可以多个修正模式一起用。例如:$pattern=’/imdupeng/Uix’;
就是这么简单,掌握一门语言,多玩一玩,就行。