php之路2
作者:互联网
正则表达式
?
匹配0次或1次其前面的字符
放在?前面的那个字符可以出现0次,或者1次
<?php
/*
元字符:?
匹配0次或1次其前面的字符
放在?前面的那个字符可以出现0次,或者1次
*/
$pattern='/te?st/';
$str='abcteest';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
+
匹配1次或多次其前面的字符
放在+前面的那个字符可以出现1次,也可以出现多次
<?php
/*
元字符:+
匹配1次或多次其前面的字符
放在+前面的那个字符可以出现1次,也可以出现多次
*/
$pattern='/te+st/';
$str='abctst';//+代表前面的字符出现1次或者多次,但是不能不出去,很显然我们这边一次都没有出现,我们没有匹配到符合特征的!
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
{n}
表示其前面字符恰好出现n次
放在{n}前面的那个字符正好出现n
<?php
/*
元字符:{n} n代表自己写的一个数字
表示其前面字符恰好出现n次
放在{n}前面的那个字符正好出现n次
*/
$pattern='/te{3}st/';
$str='abcteeest';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
{n,}
表示其前面字符出现不少于n次
放在{n,}前面的那个字符出现的次数应该大于等于n次
<?php
/*
元字符:{n,} n代表自己写的一个数字
表示其前面字符出现不少于n次
放在{n,}前面的那个字符出现的次数应该大于等于n次
*/
$pattern='/te{3,}st/';
$str='abcteeest';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
{n,m}
{n,m} 表示其前面的字符至少出现n次,最多出现m次
<?php
/*
元字符:{n,m} 表示其前面的字符至少出现n次,最多出现m次
*/
$pattern='/te{3,5}st/';
$str='abcteeeeeest';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
.与{n}配合
表示前面出现任意字符出现n次
<?php
/*
.与{n}配合
*/
$pattern='/t.{3}st/';// t...st
$str='abctabcst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
.与*配合
表示出现任意次随意字符
$pattern='/t.*st/';//tst
$str='abctst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
贪婪匹配与懒惰匹配
<?php
/*
.与*配合
.*配合使用默认情况下是 贪婪匹配(尽可能多的去匹配字符)
*/
$pattern='/t.*t/';
$str='abctstdwqdwqdqwdqwdwqtdwqdwqdqwdwqt';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
//.*后面加上一个?可以解决贪婪匹配的问题, 懒惰匹配
$pattern='/t.*?t/';
$str='abctstdwqdwqdqwdqwdwqtdwqdwqdqwdwqt';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
//.*后面加上一个?可以解决贪婪匹配的问题, 懒惰匹配
$pattern='/1.*?t/';
$str='ab1ctstdwqdwqdq1wdqwdwqtdwqdwqdqwdwqt';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
^或\A
匹配字符串开始位置
<?php
/*
^或\A 匹配字符串开始位置
*/
$pattern='/^test/';
$str='testabc';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
$或\A
匹配字符串的结束位置
<?php
/*
$或\A 匹配字符串的结束位置
*/
$pattern='/test$/';
$str='dwqdtestwqdwqdwqtest';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
^与$配合使用
<?php
/*
^与$配合使用
*/
$pattern='/^te.*st$/';
$str='tedwqdwqdwqdwqdwqdqdwqdqst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
|
或
<?php
/*
|
*/
$pattern='/test|abc|AAA/';
$str='efAAAewtestfweabcfwefAAAwe';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
[]
[]匹配方括号中的任意一个字符
<?php
/*
[]匹配方括号中的任意一个字符
*/
$pattern='/t[abcde]st/';
$str='dwqdwtestqdqwtastdwqdwqdwqdwqtbst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
[^]
匹配除方括号中的元素外的任意一个字符
<?php
/*
[^]匹配方括号中的任意一个字符
*/
$pattern='/t[^e]st/';
$str='abct@st';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
*
匹配0次、或1次、或多次其前面的字符
放在*前面的那个字符可以出现0次,也可以出现1次,也可以出现多次
<?php
/*
元字符:*
匹配0次、或1次、或多次其前面的字符
放在*前面的那个字符可以出现0次,也可以出现1次,也可以出现多次
*/
$pattern='/te*s*t/';
$str='abcteeeeeeeeeeeeeesssssssssssssssst';
var_dump(preg_match_all($pattern,$str,$arr));
var_dump($arr);
?>
标签:字符,匹配,前面,任意,之路,配合,php,出现 来源: https://blog.csdn.net/weixin_54252904/article/details/116266401