<?PHP
/*正则表达式
*正则表达式描述了一类字符串的特征
*通过这个特征与特定的函数配合
*对其他字符串进行匹配,查找,替换和分割操作
*/
/*
//普通字符和特殊字符组成的一个字符串
//定界符
//普通字符:数字,字符
$partter = '!test!'; //除了字母,数字,反斜线以外的字符都可以用作定界符,不过我们习惯使用‘//’作为定界符
$arr = 'testasdfsda';
var_dump(preg_match_all($partter,$arr,$data));
echo("\n");
var_dump($data);
*/
/*元字符
*\d 匹配任意一个十进制数字
$p = '/te\dst/';
$s = 'te1st';
$s1 = 'tesst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
var_dump($da1);
var_dump($arr);
*\D 除了(0~9)数字以外的任何字符
$p = '/te\Dst/';
$s = 'te1st';
$s1 = 'tesst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
*\s匹配任意一个空白字符
$p = '/te\sst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
*\S 匹配出空白字符以外的任何一个字符
$p = '/te\Sst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
*\w 匹配任意一个数字或字母或下划线
$p = '/te\wst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te_st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
*\W匹配出数字,字母,下划线以外的任意一个字符
$p = '/te\Wst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te_st;';
$s3 = 'te!st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
$da3 = preg_match_all($p,$s3,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
echo("\n");
var_dump($da3);
var_dump($arr);
* \. 匹配除换行符以外的任意一个字符
$p = '/te\.st/';
$s = 'te.st';
$da = preg_match_all($p,$s,$arr);
var_dump($da3);
var_dump($arr);
* 元字符:* 匹配0次,1次,或多次其前面的字符
$p = '/te*st/';
$s = 'abc';
$s1 = 'abctest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* + 匹配1次或者多次前面的字符
$p = '/te+st/';
$s = 'tesssssst';
$s1 = 'teeeeeeeeeeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* ? 匹配0次或者1次前面的字符
$p = '/te?st/';
$s = 'teeest';
$s1 = 'tst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* {n} n是使用者自主定义的,表示其前面的字符恰好出现n次,放在{n}前面的那个字符应恰好出现n次
$p = '/te{3}st/';
$s = 'teeest';
$s1 = 'test';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* {n,} n是自主定义的,表示前面字符出现的次数不少于n次
$p = '/te{3,}st/';
$s = 'teeeeeeeeeeeeest';
$s1 = 'teeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* {n,m} n,m是自主定义的,表示其前面出现的字符至少出现n次,最多出现m次
$p = '/te{3,5}st/';
$s = 'teeeeeeeeeeeeest';
$s1 = 'teeeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* .与{n}配合使用
$p = '/te.{3}st/';
$s = 'temmmst';
$s1 = 'teeeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
.与* 共同使用
$p = '/te.*st/';
$s = 'te123abcst';
$s1 = 'abctst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
. 与 * 与 ?
$p = '/te.*?st/';
$s = 'teeee123abcsssttestteeeeeeeeeestteeeeeest';
$s1 = 'abctest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
*/
/*正则表达式
*正则表达式描述了一类字符串的特征
*通过这个特征与特定的函数配合
*对其他字符串进行匹配,查找,替换和分割操作
*/
/*
//普通字符和特殊字符组成的一个字符串
//定界符
//普通字符:数字,字符
$partter = '!test!'; //除了字母,数字,反斜线以外的字符都可以用作定界符,不过我们习惯使用‘//’作为定界符
$arr = 'testasdfsda';
var_dump(preg_match_all($partter,$arr,$data));
echo("\n");
var_dump($data);
*/
/*元字符
*\d 匹配任意一个十进制数字
$p = '/te\dst/';
$s = 'te1st';
$s1 = 'tesst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
var_dump($da1);
var_dump($arr);
*\D 除了(0~9)数字以外的任何字符
$p = '/te\Dst/';
$s = 'te1st';
$s1 = 'tesst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
*\s匹配任意一个空白字符
$p = '/te\sst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
*\S 匹配出空白字符以外的任何一个字符
$p = '/te\Sst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
*\w 匹配任意一个数字或字母或下划线
$p = '/te\wst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te_st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
*\W匹配出数字,字母,下划线以外的任意一个字符
$p = '/te\Wst/';
$s = 'te1st';
$s1 = 'tesst';
$s2 = 'te_st;';
$s3 = 'te!st;';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
$da2 = preg_match_all($p,$s2,$arr);
$da3 = preg_match_all($p,$s3,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
echo("\n");
var_dump($da2);
var_dump($arr);
echo("\n");
var_dump($da3);
var_dump($arr);
* \. 匹配除换行符以外的任意一个字符
$p = '/te\.st/';
$s = 'te.st';
$da = preg_match_all($p,$s,$arr);
var_dump($da3);
var_dump($arr);
* 元字符:* 匹配0次,1次,或多次其前面的字符
$p = '/te*st/';
$s = 'abc';
$s1 = 'abctest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* + 匹配1次或者多次前面的字符
$p = '/te+st/';
$s = 'tesssssst';
$s1 = 'teeeeeeeeeeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* ? 匹配0次或者1次前面的字符
$p = '/te?st/';
$s = 'teeest';
$s1 = 'tst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* {n} n是使用者自主定义的,表示其前面的字符恰好出现n次,放在{n}前面的那个字符应恰好出现n次
$p = '/te{3}st/';
$s = 'teeest';
$s1 = 'test';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* {n,} n是自主定义的,表示前面字符出现的次数不少于n次
$p = '/te{3,}st/';
$s = 'teeeeeeeeeeeeest';
$s1 = 'teeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* {n,m} n,m是自主定义的,表示其前面出现的字符至少出现n次,最多出现m次
$p = '/te{3,5}st/';
$s = 'teeeeeeeeeeeeest';
$s1 = 'teeeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
* .与{n}配合使用
$p = '/te.{3}st/';
$s = 'temmmst';
$s1 = 'teeeest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
.与* 共同使用
$p = '/te.*st/';
$s = 'te123abcst';
$s1 = 'abctst';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
. 与 * 与 ?
$p = '/te.*?st/';
$s = 'teeee123abcsssttestteeeeeeeeeestteeeeeest';
$s1 = 'abctest';
$da = preg_match_all($p,$s,$arr);
$da1 = preg_match_all($p,$s1,$arr);
var_dump($da);
var_dump($arr);
echo("\n");
var_dump($da1);
var_dump($arr);
*/