ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php之路2

2021-04-29 13:00:17  阅读:206  来源: 互联网

标签:字符 匹配 前面 任意 之路 配合 php 出现


正则表达式

?

匹配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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有