本文最后更新于 2024-06-09,文章内容可能已经过时。

正则表达式

一、概述

Regular Experssion , 可以通过正则字符串从指定的内容中,查找,替换字符。

二、方法

1、preg_match() 可以返回找到字符的个数,或者返回找到的字符(左边第一个);

$str = "hello";
$n = preg_match("/o/",$str);
echo $n;     //返回找到的字符,只能找一个

2、preg_match_all() : 返回找到的字符个数,或者返回找到的所有字符。

$str = "hello world";
$n = preg_match_all("/l/",$str);
echo $n;      //返回所有找到的字符的个数

3、preg_replace() : 用于替换指定类型的数据

$str = "hello world";
$pattern="/o/";
echo preg_replace($pattern," ",$str);

三、语法

1、字符类

字符模式周围的方括号称为字符类,例如[ABC]。 字符类始终匹配指定字符列表中的单个字符,这意味着表达式[abc]只匹配a、b或c字符。

表达式 说明
[abc] 匹配字符a,b或c中的任何一个。
[^abc] 匹配a,b,c以外的任何一个字符。
[a-z] 匹配从小写字母a到小写字母z的任意一个字符。
[A-Z] 匹配从大写字母A到大写字母Z的任意一个字符。
[0-9] 匹配0到9之间的一个数字。
[a-z0-9] 匹配a与z之间 或 0与9之间的单个字符。

2、预定义字符类

一些字符类(例如数字,字母和空格)被频繁使用,以至于它们都有快捷方式名称。下表列出了那些预定义的字符类:

表达式 说明
. 匹配除换行符\n之外的任何单个字符。
\d 匹配任何数字字符。 与[0-9]相同。
\D 匹配任何非数字字符。
\s 匹配任何空白字符(空格,制表符,换行符或回车符)。 与[\t\n\r]相同。
\S 匹配任何非空格字符。
\w 匹配任何单词字符(定义为a到z,A到Z,0到9和下划线)。 与[a-zA-Z_0-9]相同
\W 匹配任何非单词字符。

3、重复量词

表达式 说明
p+ 匹配一个或多个字母p。
p* 匹配零个或多个出现的字母p。
p? 匹配零个或一个出现的字母p。
p{2} 正好匹配两个字母p。
p{2,3} 匹配至少两个出现的字母p,但不超过三个出现的字母p。
p{2,} 匹配两次或超过2次出现的字母p。
p{,3} 最多匹配三个出现的字母p

4、开头结尾

表达式 说明
^p 与行首的字母p匹配。
p$ 与行尾的字母p匹配。

5、模式修饰符

表达式 说明
i 使匹配不区分大小写。

四、检测手机号


$str = "15390129909";

$result = preg_match("/^1[356789][0-9]{9}$/",$str);