正则表达式整理

来源:互联网 发布:影子网络真的很恐怖吗 编辑:程序博客网 时间:2024/06/08 19:55

/ 定界符 除了字母、数字和斜线“\”以外的任何字符都可以作为定界符
/*转义字符:
* \n: 换行符
* \r: 回车符
* \t: 制表符
*元字符
* \d 代表数字 0-9
* \D 代表非数字
* \s 空白符(空格, 回车, tab)
* \S 非空白符
* \w 字符(a-z , A-Z, 0-9, _)
* \W 非字符
* . 除了\n 之外的所有字符
* * * * * * * * * * * * *
*表示数量的元字符
* * : 个数>=0
* + : 个数>=1
* ? : 个数只能取0或者1
* * * * * * * * * * *
* []: 查找方括号之间的任何字符
* [^]: 查找任何不在方括号之间的字符
*连字符 -
* [0-9]: 表示所有数字
* [a-z]: 表示所有小写字母
* [A-Z]: 表示所有大写字母
* \uxxxxxx: Unicode编码
* 中文范围: 4E00-9FA5
* 当需要匹配一下时需要进行转义
* . $ () + - * / \ ? ^ { } | [ ] 加上 '\'
*量词
* {n}: 个数为n个
* {n,}: 个数为>=n个
* {n,m}: 个数为>=n 且 <=m
* + ===> {1,}
* ? ===> {0,1}
* * ===> {0,}
*定位符:
* ^: 表示字符串的开头
* $: 表示字符串的结尾
* \b: 表示字符串中单词的边界
* 规则属性m的作用:
* 影响系统对行头行尾的解释
* 当不加m时,系统认为^和$就是字符串的开头和结尾,但是如果加m且字符串中有\n,那么^和$分别指每一行的开头和结尾
* 选择符和分组符
* 选择符 规则1|规则2 只要匹配上某一条规则就是匹配成功
* 分组符 () 把某些规则当成一个整体

1.匹配正整数:/^[1-9]\d*$/

2.匹配非负整数(正整数+0):/^\d+$/

3.匹配中文:/^[\x{4e00}-\x{9fa5}]+$/u

4.匹配Email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/

5.匹配网址URL:(((f|ht){1}(tp|tps)://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)

6.匹配字母开头,5-16字符,字母数字下划线:/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

7.匹配数字,字母,下划线,中文:/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u

8.匹配中国邮政编码:/^[1-9]\d{5}$/

9.匹配IP地址:/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/

10.匹配中国大陆身份证:/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d|x|X)$/


什么是模式修正符? 

1, 模式修正符就是几个字母,我们在每个正则表达式中可以一次使用一个,也可以连续使用多个,每一个具一定的意义。 
2, 模式修正符是对整个正则表达式调优使用,也可以说是对正则表达式功能的扩展。 
还记得正则表达式的那个公式吗?'/原子和元字符/模式修正符',其中正斜线为边界符。 

模式修正符的构成 
模式修正符就是字母,只不过这些在模式修正符的应用之中有特殊的含义。下面我来看看都有哪些模式修正符,请看下表: 

模式修正符说明i表示在和模式进行匹配进不区分大小写m将模式视为多行,使用^和$表示任何一行都可以以正则表达式开始或结束s如果没有使用这个模式修正符号,元字符中的"."默认不能表示换行符号,将字符串视为单行x表示模式中的空白忽略不计e正则表达式必须使用在preg_replace替换字符串的函数中时才可以使用(讲这个函数时再说)A以模式字符串开头,相当于元字符^Z以模式字符串结尾,相当于元字符$U正则表达式的特点:就是比较“贪婪”,使用该模式修正符可以取消贪婪模式

由于i表示匹配不区分大小写,在下面的示例中,我们不再进行演示,我们来看一下其他模式修正符的示例。


原创粉丝点击