正则表达式
一、理解正则表达式
描述了一类字符串的特征,然后通过这个特征可以配合一些特定的函数,来完成对字符串更加复杂的一系列操作! 普通字符和特殊字符组成的一个字符串
preg_match_all 函数用于执行一个全局正则表达式匹配
<?php
$pattern='/test/';
$str='abctestdwqdwqtestdwqdwqtestdwqdwqdqwtesttest';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
输出结果:
int(5)
array(1) { [0]=> array(5) { [0]=> string(4) "test" [1]=> string(4) "test" [2]=> string(4) "test" [3]=> string(4) "test" [4]=> string(4) "test" } }
二、定界符
使用正斜线"/"作为定界的字符,前后一致
三、普通字符
a-z,A-Z,0-9,双引号,单引号没有特殊意义
<?php
/*
元字符:\d
代表0,1,2,3,4,5,6,7,8,9之中的任意一个数字
*/
$pattern='/t\dst/';
$str='abct1sts';
var_dump(preg_match_all($pattern, $str,$arr));
var_dump($arr);
?>
输出结果:
int(1)
array(1) { [0]=> array(1) { [0]=> string(4) "t1st" } }
四、元字符
在正则表达式中有特殊含义的字符
\d 匹配任意一个十进制数字,等价于[0-9]
\D 匹配任意一个除十进制数字以外字符,等价于[^0-9]
\s 匹配任意一个空白字符,比如换页符、换行符、回车符、制表符、垂直制表符
\S 匹配除空白字符以外的任何一个字符
\w 匹配任意一个数字或字母或下划线
\W 匹配除数字、字母、下划线以外的任意一个字符
. 匹配除换行符以外的任意一个字符
* 匹配0次、或1次、或多次其前面的字符
+ 匹配1次或多次其前面的字符
? 匹配0次或1次其前面的字符
{
n} 表示其前面字符恰好出现n次
{
n,} 表示其前面字符出现不少于n次
{
n,m} 表示其前面的字符至少出现n次,最多出现m次
^或\A 匹配字符串开始位置
$或者\Z 匹配字符串的结束位置
| 匹配两个或多个模式
[] 匹配方括号中的任意一个字符
[^] 匹配除方括号中字符以外的任意一个字符
<?php
/*
元字符:\D
除了0,1,2,3,4,5,6,7,8,9之外的任意一个字符
*/
$pattern=