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.ini中文版(1)
Oct 09 PHP
PHP页面间传递参数实例代码
Jun 05 PHP
php zip文件解压类代码
Dec 02 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
php使用websocket示例详解
Mar 12 PHP
getimagesize获取图片尺寸实例
Nov 15 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
PHP 500报错的快速解决方法
Dec 14 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PHP实现的折半查找算法示例
Dec 19 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简单浏览目录内容的实现代码
2013/06/07 PHP
php对数组排序代码分享
2014/02/24 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
python生成二维码的实例详解
2017/10/29 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
基于python实现名片管理系统
2018/11/30 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
django框架auth模块用法实例详解
2019/12/10 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
Python多线程的退出控制实现
2020/08/10 Python
python 如何对logging日志封装
2020/12/02 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
大学生简历中个人的自我评价
2013/10/06 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
校庆活动方案
2014/03/31 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python