PHP中正则表达式的用法

时间:2021-10-08 09:44:13
1. 正则表达式的定义     正则表达式就是记录某种文本规则的字符串。 如: $pattern = '/^[a-zA-Z]\w{5,9}$/';
2. 正则表达式的构成     五大组成部分: 字符簇、限定符、定位符、子表达式和模式修饰符。
字符簇:普通字符组成的集合(特殊字符需要转义,比如\.和\-)。 [abc]  匹配abc中的任何一个字母 [a-z]  匹配任何一个小写字母 [A-Z]  匹配任何一个大小字母 [a-zA-Z] 匹配任何一个字母 [0-9]  匹配任何一个数字 [a] 匹配一个a字母  等价于  a   如果字符簇中只包含一个字符,可以省略两边的中括号。
\d   匹配数字,等价于  [0-9] \D  匹配非数字 \w  匹配字母、数字和下划线 \W  匹配非(字母、数字和下划线) \s  匹配任意的空白符 \S  匹配非空白符 .  匹配除换行符以外的任意字符 [^abc]  匹配除了abc之外的任何一个字符
限定符:限定字符串中字符出现的次数。 {1}    限定次数为1    (可以省略) {3}    限定次数为3 {3,}  限定次数为3次及以上 {1,3}  限定次数为1-3次
*  限定次数为0次及以上  等价于  {0,} + 限定次数为1次及以上  等价于  {1,} ?  限定次数为0次或1次  等价于 {0,1}
注意: "/.*/"具有贪婪性,一般需要用?去掉它的贪婪性,如写成"/.*?/"
定位符:定位匹配字符串的位置。 ^  匹配字符串的开头,置于正则表达式的内侧头部 $  匹配字符串的结尾,置于正则表达式的内侧尾部
子表达式:用小括号将一个正则表达式的局部括起来作为整体去匹配,这样的式子就是子表达式。
模式修饰符:对整个正则表达式进行一定的修饰处理,置于正则表达式的外侧尾部,也就是写在尾部正斜线的后面。 i   正则表达式中的字符簇进行匹配时,不区分大小写 s  正则表达式中的 . 可以包含换行符 u  正则表达式中的字符簇被认为是utf-8的 U  对正则表达式中的量词的贪婪性进行逆转
特殊符号: |  或匹配 $pattern = "/[a-z]{3}|\d{3}/"   匹配3个小写字母或者匹配3个数字
示例: 匹配邮箱的正则表达式 $pattern = "/^[^_][\w\.-]+@[\w]+(\.\w+)+$/i";$pattern = "/^[a-zA-Z0-9_\.-]{2,}@[a-zA-Z0-9_\-]{2,}(\.[a-zA-Z0-9]{2,})+$/";
匹配任意两个连续汉字(utf8编码)的正则表达式 $pattern = '/[\x{4e00}-\x{9fa5}]{2}/u';