xiaohuihui
for me

PHP正则表达式

2020-01-21 16:35:55
Word count: 801 | Reading time: 3min

PHP正则表达式

正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。

1.元字符

正则表达式主要依赖于元字符. 元字符不代表他们本身的字面意思, 他们都有特殊的含义. 一些元字符写在方括号中的时候有一些特殊的意思. 以下是一些元字符的介绍:

元字符 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
例:
1
2
3
4
\bmr\w*\b
/*
匹配以字母mr开头的单词,先是从某个单词开始处(\b),然后匹配字母mr,接着是任意数量的字母或数字(\w*),最后单词结束处(\b)。该表达式可以匹配mrsoft,mrbook,mr12345等。
*/

2.限定符

如果想要匹配特定数量的数字,可用限定符来实现:

限定符 说明 举例
? 匹配前面的字符零次或一次 colou?r,该表达式可以匹配colour和color
+ 匹配前面的字符一次或多次 go+gle,该表达式可以匹配的范围从gogle到goo…gle
* 匹配前面的字符零次或多次 go*gle,该表达式可以匹配的范围从ggle到goo…gle
{n} 匹配前面的字符n次 go{2}gle,该表达式只匹配google
{n,} 匹配前面的字符最少n次 go{2,}gle,该表达式可以匹配的范围从google到goo…gle
{n,m} 匹配前面的字符最少n次,最多m次 employ{0,2},该表达式可以匹配employ,employe和employee 3种情况
  • [] 字符集合(字符域)。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。
  • [-] 字符范围。匹配指定范围内的任意字符。例如,’[a-z]’ 可以匹配 ‘a’ 到 ‘z’ 范围内的任意小写字母字符。
  • | x|y,匹配 x 或 y。例如,’z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。

3.PHP常用正则函数

  • 匹配:preg_match()与preg_match_all()

    1 preg_match($pattern,$subject,[array &$matches])
    2 preg_match_all($pattern,$subject,array &$matches)

    1只会匹配一次,2会把所有符合的字符串都匹配出来,并且放置到matches数组中,而且这两个函数都有一个整形的返回 值。1是一维数组,2是二维数组

1
2
3
4
5
6
7
8
9
10
<?php
$mobile1 = '13578982152';
$pattern = '/1[3,5,7,8,9]\d{9}$/'; //第一位为1,第二位在3.5.7.8.9中取值,最后九位匹配前面的字符9次
if(preg_match($pattern,$mobile1)){ //进行匹配,为真则输出 $pattern是字符串,用来检测$mobile1格式是否正确
echo $mobile1."手机格式正确";
}else{
echo $mobile1."手机格式不正确";
}
?>
/*最后输出结果手机格式正确*/
1
2
3
4
5
6
7
$str = 'http://baidu.com';

$pattern = '/http:\/\/.*com/';//需要转义 转义字符:/

preg_match($pattern,$str,$match);

var_dump( $match);
1
2
3
4
5
6
7
$str = 'http://baidu.com';

$pattern = '#http://.*com#';//不需要转义/

preg_match($pattern,$str,$match);

var_dump( $match);

Author: 小灰灰

Link: http://xhh460.github.io/2020/01/21/PHP%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/

Copyright: All articles in this blog are licensed.

< PreviousPost
关于github登录不上的问题
NextPost >
搭建网站——apache服务器
CATALOG
  1. 1. PHP正则表达式
    1. 1.0.1. 1.元字符
      1. 1.0.1.0.1. 例:
  2. 1.0.2. 2.限定符
  3. 1.0.3. 3.PHP常用正则函数