A-A+

关于正则表达式

2017年10月12日 php, 编程 暂无评论 阅读 2,459 views 次

许多朋友不会写正则表达式,帮忙写了许多。正则看起来像天文,其实不然,它非常简单。

 

正则表达式,只要理解以下几点,就能轻松掌握。

 

基本语法:界定符、原子、量词、边界控制、模式单元

 

一、界定符:表示一个正则表达式的开始和结束

/中间就是正则的内容/

#中间就是正则的内容#

{中间就是正则的内容}

 

例如:

$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’;

 

 

就是这么简单,掌握一门语言,多玩一玩,就行。

给我留言