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 相关文章推荐
PHP5.2下chunk_split()函数整数溢出漏洞 分析
Jun 06 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
php 文件缓存函数
Oct 08 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
PHP函数篇之掌握ord()与chr()函数应用
Dec 05 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
yii2实现Ueditor百度编辑器的示例代码
Nov 02 PHP
浅谈如何提高PHP代码的质量
May 28 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中的正规表达式(二)
2006/10/09 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
javascript的事件描述
2006/09/08 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
Vue异步加载about组件
2017/10/31 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
python编写爬虫小程序
2015/05/14 Python
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
英语系本科生求职信范文
2013/12/18 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
国防教育标语
2014/10/08 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书