- 加入我的QQ群
- 关注我的百家号
扫描下面的二维码,“关注”我的百家号。
php正则表达式非常实用,在很多场景下可以使用,如:字符串匹配、字符串替换、数组匹配、批量替换等。典型的例子有:邮箱验证、电话手机号码验证、url地址验证等 。从本节开始,我们就来认识一下php中的正则表达式。本节主要介绍一下php正则表达式的常规元素。
1、量词
+ 匹配任何至少包含一个前导字符串
* 匹配任何包含零个或多个前导字符串
? 匹配任何包含零个或一个前导字符串
. 匹配任意字符串
{x} 匹配任何包含 x 个前导字符串
{x,y} 匹配任何包含 x 到 y 个前导字符串
{x,} 匹配任何包含至少 x 个前导字符串
$ 匹配字符串的行尾
^ 匹配字符串的行首
| 匹配字符串的左边或者右边
() 包围一个字符分组或定义个反引用,可以使用 \1\2 或 ${1}${2} 提取
例子:
/a+/ 匹配 字符串 1个或多个a 组成的字体串
/a{1,}/ 匹配 字符串 1个或多个a 组成的字体串
/a{2,4}/ 匹配 字符串 2个到4个a 组成的字体串
2、元字符
[] 是正则的一种语法,表示中间的任意一个匹配
[a-z] 匹配任何包含小写字母 a-z 的字符串
[A-Z] 匹配任何包含大写字母 A-Z 的字符串
[0-9] 匹配任何包含数字 0-9 的字符串
[abc] 匹配任何包含小写字母 a、b、c 的字符串
[^abc] 匹配任何不包含小写字母 a、b、c 的字符串
[a-zA-Z0-9_] 匹配任何包含 a-zA-Z0-9 和下划线的字符串
\w 匹配任何包含 a-zA-Z0-9 和下划线的字符串(同上)
\W 匹配任何没有下划线和字母数字的字符串
\d 匹配任何数字字符,和[0-9]相同
\D 匹配任何非数字字符,和[^0-9]相同
\s 匹配任何空白字符,即空格
\S 匹配任何非空白字符
\b 匹配是否到达了单词边界,中文没用
\B 匹配是否没有达到单词边界,中文没用
\ 匹配正则中的特殊字符,如:要匹配 +,而+号是正则的特殊字符,所以要 \+
例子:
/\d+/ 匹配 数字 1到若干个
3、修饰符:放在/的后面
i 完成不区分大小写的搜索
m 在匹配【行首或行尾】时采用多行识别匹配,如:preg_match("/gao$/m","this is gao\n,that is")); 匹配了第一行的结尾
x 忽略正则中的空白;如:preg_match("/ga o/x","this is gao"));
A 强制从头开始匹配
U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束
例子:
/[a-zA-Z]+/i 匹配1到若干个 英文字母组合,区分大小写