正则表达式(php,js,preg)的原子、元字符和模式修正符号
一、原子
1、打印字符(a-z A-Z 0-9 !@#$%^&*()_*)和非打印字符
2、所有的数字,所有的字,所有的空白,所有字母,特殊符号
\d:代表任意一个数字
\D:代表任意一个非数字
\w:代表任意一个字 a-z A-Z 0-9 _
\W:代表任意一个非字 除a-z A-Z 0-9 _之外的所有字符
\s:代表空白
\S:代表非空白
3、自己定义原子表
[13579]
[^a-zA-z]
-从哪到哪,范围 ^除列表中的
4、点(.)能代表所有的
二、元字符:不能再正则表达式中单独使用,用来修饰原子的。
*: 用来修饰其前面的原子可以出现0个1个或多个(可有可无,多了不限)
+: 用来修饰其前面的原子可以出现1次或多次,不能没有至少要出现一次(最少一次,多了不限)
?:用来修饰其前面的原子可出现0次或1次(可有可无,最多一次)
{n}:用来修饰前面原子只能出现n次,多一次少一次都不行
{n,m}:用来修饰其前面的原子出现个数在n到m之间,包括n和m
{n,}:用来修饰其前面的原子可以出现至少n次 没有{,n} 用{0,n}代替
5、其他元字符
|:是或的关系,表示他两边的原子,只要有一个出现就可以,但是 | 优先级是最低的 所以注意加括号
^或\A:表示必须以什么开始,这个必须放在正则表达式的最前面
$或\Z:表示以什么结束,这个必须放在正则表达式的最后面
\b:匹配单词边界
\B:匹配不是单词边界
():第一个作用:改变优先级
第二个作用:将小原子变大原子
第三个作用:子模式,整个表达式是一个大的模式,小括号中的是每个独立的子模式
第四个作用:反向引用
三、模式修正符号(单个字符)
1、模式修正符号要写在定界符号外,放在右边
2、模式修正符,一个字符就是一个功能,可以组合使用
作用:模式修正符号可以修正正则表达式的解释,或扩充了正则表达式的功能
i:修正正则表达式不区分大小写(默认区分)
m:修正正则表达式可以视为多行,在使用^或$这两个符号时,每一行满足都可以(默认视为一行处理)
s:修正正则表达式中的 . 可以匹配换行符号
x:修正正则表达式,可以省略空白
U:(.*)正则表达式比较贪婪,.*?可以取消贪婪
网站url正则表达式:$reg='/(https?|ftps?):\/\/(www|mail|bbs|ftp)\.(.*?)\.(net|com|org|cn)([\w-\.\/\=\?\&\%]*)?/';
email地址正则表达式:$reg='/\w+([+-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/i';