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 相关文章推荐
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
php生成excel文件的简单方法
Feb 08 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
Oct 22 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 30 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
php分页思路以及在ZF中的使用
2012/05/30 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
python字典序问题实例
2014/09/26 Python
python超简单解决约瑟夫环问题
2015/05/12 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python hough变换检测直线的实现方法
2019/07/12 Python
安装python及pycharm的教程图解
2019/10/10 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
python语言中有算法吗
2020/06/16 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
放飞中国梦演讲稿
2014/04/23 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题
python中if和elif的区别介绍
2021/11/07 Python