php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串


Posted in PHP onApril 05, 2020

一、小括号()、中括号[]、大括号的区别

 1>. 小括号():匹配小括号内的字符串,可以是一个,也可以是多个,常跟“|”(或)符号搭配使用,是多选结构的

示例1:string name = "way2014"; regex:(way|zgw) result:结果是可以匹配出way的,因为是多选结构,小括号是匹配字符串的

示例2:string text = "123456789"; regex:(0-9) result:结果是什么都匹配不到的,它只匹配字符串"0-9"而不是匹配数字, [0-9]这个字符组才是匹配0-9的数字

 2>.中括号[]:匹配字符组内的字符,比如咱们常用的[0-9a-zA-Z.*?!]等,在[]内的字符都是字符,不是元字符,比如“0-9”、“a-z”这中间的“-”就是连接符号,表示范围的元字符,如果写成[-!?*(]这样的话,就是普通字符

示例1: string text = "1234567890"; regex:[0-9] result:结果是可以匹配出字符串text内的任意数字了,像上边的【或符号“|”在字符组内就是一个普通字符】

示例2:string text = "a|e|s|v"; regex:[a|e|s] result:结果就是匹配字符a、e、|三个字符,这个跟(a|e|s)有区别的,区别就是(a|e|s)匹配的是a、e、s三个字符的随意一个,三个中的任意一个,这是的|是元字符

 3>.大括号{}:匹配次数,匹配在它之前表达式匹配出来的元素出现的次数,{n}出现n次、{n,}匹配最少出现n次、{n,m}匹配最少出现n次,最多出现m次

更多的可以参考这篇文章:https://3water.com/article/141294.htm

测试代码

$str="你好<我>(爱)[北京]{天安门}";

echo f1($str); //返回你好 
echo f2($str); //返回我 
echo f3($str); //返回爱 
echo f4($str); //返回北京 
echo f5($str); //返回天安门

function f1($str) 
{ 
$result = array(); 
preg_match_all("/^(.*)(?:<)/i",$str, $result); 
return $result[1][0]; 
} 
 
function f2($str) 
{ 
$result = array(); 
preg_match_all("/(?:<)(.*)(?:>)/i",$str, $result); 
return $result[1][0]; 
}

function f3($str) 
{ 
$result = array(); 
preg_match_all("/(?:\()(.*)(?:\))/i",$str, $result); 
return $result[1][0]; 
}

function f4($str) 
{ 
$result = array(); 
preg_match_all("/(?:\[)(.*)(?:\])/i",$str, $result); 
return $result[1][0]; 
}

function f5($str) 
{ 
$result = array(); 
preg_match_all("/(?:\{)(.*)(?:\})/i",$str, $result); 
return $result[1][0]; 
}

PS: (?:字符) 表示不捕获这个字符。貌似PHP不支持将字符换成括号。
否则的话可以将环视给嵌套进去,就可以循环匹配了。
PS2:环视:(?!) (?=) (?<!) (?<=)
有小于号的在右侧匹配,没有的在左侧匹配。感叹号表示不等,等于号表示相等。
PS3:都过了验证器的验证,验证器见参考资料。

PHP 相关文章推荐
PHP调用Twitter的RSS的实现代码
Mar 10 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
PHP 验证码的实现代码
Jul 17 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
php 读取文件头判断文件类型的实现代码
Aug 05 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
php常用hash加密函数
Nov 22 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 PHP
PHP中的Memcache详解
Apr 05 #PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 #PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 #PHP
PHP6 中可能会出现的新特性预览
Apr 04 #PHP
php实现水仙花数示例分享
Apr 03 #PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 #PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 #PHP
You might like
《星际争霸重制版》兵种对比图鉴
2020/03/02 星际争霸
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
基于IView中on-change属性的使用详解
2018/03/15 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
python实现列表的排序方法分享
2019/07/01 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
幼儿园运动会入场词
2014/02/10 职场文书
实习公司领导推荐函
2014/05/21 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2014年电厂工作总结
2014/12/04 职场文书
爱情保证书
2015/01/17 职场文书
少年犯观后感
2015/06/11 职场文书
停发工资证明范本
2015/06/12 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
MySQL分库分表详情
2021/09/25 MySQL