PHP中preg_match_all正则匹配出需要的内容
目录
- 一、需求
- 二、分析
- 1、共同特征
- 2、详细分析
- 1、匹配数字
- 2、匹配英文问号:0个或1个
- 3、匹配量词中的一个【桶,盒,对,只,根,条】
- 4、匹配空格0个或多个
- 5、针对汉字匹配 /u
- 3、正则表达式
- 三、代码
- 四、打印
- 五、正则语法
一、需求
- 1、现有词语如下
1桶辣条
2盒 辣条
2020-08 10对辣条
99只辣条
39根 辣条
88?条 辣条
- 2、需要获取辣条的
数量
二、分析
1、共同特征
数字
+0个或1个英文问号
+量词
+0个或多个空格
+ 辣条
2、详细分析
1、匹配数字
\d
:匹配一个数字字符。等价于[0-9]
。+
:匹配前面的子表达式一次或多次,相当于{1,}
2、匹配英文问号:0个或1个
\??
或者\?{0,1}
- 由于
?
是特殊字符,所以要加上转义字符\
3、匹配量词中的一个【桶,盒,对,只,根,条】
[桶|盒|对|只|根|条]
4、匹配空格0个或多个
\s*
或者\s{0,}
5、针对汉字匹配 /u
/u
表示按unicode(utf-8)匹配(主要针对多字节比如汉字)/i
表示不区分大小写(如果表达式里面有 a, 那么 A 也是匹配对象)/s
表示将字符串视为单行来匹配
3、正则表达式
/(\d+)\??[桶|盒|对|只|根|条]\s{0,}辣条/u
- preg_match_all匹配多个时,每一个()里对应一个结果数组,默认匹配返回所有内容,preg_match_all返回的
数组数量
=1
+()的个数
三、代码
public function test() {$words = ['1桶辣条','2盒 辣条','2020-08 10对辣条','99只辣条','39根 辣条','88?条 辣条',//来几个不对的数据'99斤辣条','88根九辣条'];$pattern = '/(\d+)\??[桶|盒|对|只|根|条]\s{0,}辣条/u';foreach ($words as $word) {preg_match_all($pattern, $word, $result);echo "{$word}<br/>";var_export($result);echo '<br/><br/>';}
}
四、打印
1桶辣条
array ( 0 => array ( 0 => '1桶辣条', ), 1 => array ( 0 => '1', ), )2盒 辣条
array ( 0 => array ( 0 => '2盒 辣条', ), 1 => array ( 0 => '2', ), )2020-08 10对辣条
array ( 0 => array ( 0 => '10对辣条', ), 1 => array ( 0 => '10', ), )99只辣条
array ( 0 => array ( 0 => '99只辣条', ), 1 => array ( 0 => '99', ), )39根 辣条
array ( 0 => array ( 0 => '39根 辣条', ), 1 => array ( 0 => '39', ), )88?条 辣条
array ( 0 => array ( 0 => '88?条 辣条', ), 1 => array ( 0 => '88', ), )99斤辣条
array ( 0 => array ( ), 1 => array ( ), )88根九辣条
array ( 0 => array ( ), 1 => array ( ), )
五、正则语法
- 正则表达式 - 语法
- 正则表达式手册
PHP中preg_match_all正则匹配出需要的内容相关推荐
- python中的正则匹配知识点
@author: fighter Python正则表达式知识点整理. 概述:在处理字符串时,经常会遇到查找符合某些复杂规则字符串的需求,正则表达式就是用于描述这些规则的工具. 首先,我们先掌握一下py ...
- Python中的 正则匹配
正则匹配的基本格式 import re ret=re.match("正则表达式","要匹配的字符串") ret.group( ) 提取数据 匹配单个字符: . ...
- Word中类似正则匹配的查找替换通配符的使用详解
Word查找栏代码·通配符一览表 序号 清除使用通配符复选框 勾选使用通配符复选框 特殊字符 代码 特殊字符 代码or通配符 1 任意单个字符 ^? 任意单个字符 ? 2 任意数字 ^# 任意数字(单 ...
- 正则匹配html标签和内容,正则匹配HTML标签(不保留内容和保留内容、过滤标签的的属性)...
1.匹配双标签(包括内容),过滤标签,不保留内容. var reg1 = /]*>(.|\n)*/gi; var str1 = '我是被删除的123123'; console.log(str1. ...
- 正则匹配出字符串中两串固定字符区间的所有字符
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 正文: 效果:匹配两个字符串区间的字符串 代码: var dd=[];var str = 'is_img&qu ...
- Java与Python中的正则匹配
Java实现 import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test {public stat ...
- VSCode中常用正则匹配
日常开发中,经常会遇到需要注释先前遗留的大量console相关的输出日志代码,在vscode中可以使用当前页搜索(CTRL + F)或全局搜索的方式来批量注释或删除. 当前页 全局 1.注释当前页所 ...
- javascript中的正则匹配函数exec(),test(),match()
test() var str = "cat"; var reStr = /cat/; alert(reStr.test(str)); 输出为:true 它的返回值为true or ...
- java中使用正则匹配所有标点符号
if (endStr.matches("[\\pP\\p{Punct}]"))
- 正则匹配括号里面的内容不包括括号_python正则表达式
是一个计算机科学概念用于使用单个字符串来描述,匹配某个规则的字符串常常用来检索,替换某些模式的文本 正则的写法 .(点号):表示任意一个字符,除了 [](中括号),匹配括号中列举的范围,如[0-9]代 ...
最新文章
- linux加微软的数据库,在Linux上使用Microsoft SQL – 安装SQL
- c语言通过域组策略下发软件,windows 2008 server 域环境通过组策略下发计划任务(示例代码)...
- SNS网站是否应该实行邀请制、实名制?
- Javascript操作table,tr,td和表格CSS样式设置小常识
- js 函数定义三种方式
- 洞悉物联网发展1000问之从精益管理到互联工业带来的启示是什么?
- 将JPG文件作为EXE执行
- js中常用的操作字符串的方法大全
- RHE5服务器配置——Samba服务器
- 工作125:各个接口需要的token不同 token是获取数据的关键
- 浅谈“三层结构”原理与用意(转帖)
- Python动态导入模块、类
- python下路径问题及模型存储
- ssrs行高_SSRS中的备用行颜色
- 网络协议从入门到底层原理(5)传输层(UDP、TCP - 可靠传输、流量控制、拥塞控制、建立连接、释放连接)
- HDOJ--1875--畅通工程再续
- 用 new 还是用 alloc/init
- 如何查看excel中的vba代码
- 景区门票预约系统如何开发
- C语言求解一元二次方程代码
热门文章
- 视觉在无人驾驶中的应用及分类_紫外光在机器视觉中的应用
- 贵州省二级分类土地利用数据(矢量)
- html怎么读取2进制视频,IE 中如何读取二进制文件的内容?
- 商城购物车php代码,php实现商城购物车的思路和源码分析
- linux定时器王贤才,《linux内核设计与实现》 学习笔记(十七)---设备和模块
- mysql innodb远程备份_详细说明MySQL备份、还原、innoDB打开
- php 域名方法,PHP获取域名方法
- python windows7下创建~/.pypirc文件
- HackerOne年度报告:安全众测推出四年,成果几何?
- 使用ClassLoader加载资源详解