首页 >  编程教程 >  php教程 >  正文

php如何匹配特定的汉字字母英文preg_match_all方法实现

 作者:潘某人SEO
1053

php正则表达式中preg_match_all函数的详解,reg_match_all函数具体说明大家可以查看PHP手册,此处给大家展示一些简单实用的应用例子,preg_match_all函数可以通过正则表达式,匹配到字符串的内容到一个数组中。
preg_match_all函数在内容的处理中还是非常实用的一个函数,可以用于处理字符串的匹配。

preg_match_all函数语法

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
1

参数说明

$pattern: 要搜索的模式,字符串形式。
$subject: 输入字符串。
$matches: 多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。
$flags:可以结合下面标记使用(注意不能同时使用PREG_PATTERN_ORDER和 PREG_SET_ORDER):
offset: 通常, 查找时从目标字符串的开始位置开始。可选参数offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

常用的正则表达式

想要使用preg_match_all函数,了解正则表达式是一个必要的条件,具体可以了解正则表达式相关的文档,这里给大家举例一些常用的表达式:

匹配纯数字

[0-9]+
1

匹配字母

[a-zA-Z]+   //大小写字母,举例SeoddCn
[a-z]+      //小写字母,举例seoddcn
[A-Z]+      //大写字母SEODDCN
1
2
3

匹配大小写字母

[a-zA-Z0-9]+ //举例9seoDD8cn
1

匹配<和>字符

[<>]+ 
1

如果不想匹配某个规则在表达式开始位置加入‘^’,如下

[^a-zA-Z]+   //不匹配大小写字母
[^a-z]+      //不匹配小写字母
[^A-Z]+      //不匹配大写字母
1
2
3

运用实例

字符串内容:“潘某人SEO,365天,每日1帖子,”,以这句话来举例preg_match_all函数的用法。
preg_match_all匹配

匹配数字

$str = "潘某人SEO,365天,每日1帖子";//需要进行筛选的字符串
preg_match_all('/[0-9]+/i',$str,$row)
1
2

正则表达式匹配默认是大小写明感,正则表达式后‘/i’代表匹配的时候大小写不明感。
运行结果以三维数组保存在$row中,如上述$str总共可以匹配到两次数字,分为是第一个数字365,第二个数字1,具体的结构打印下$row观察下。

灵活应用

但是如果在复杂的字符窜中匹配到,想要的某个数字是今天的重点,其实有一种简单的做法,在实际应用中内容虽然比较复杂但是某些内容的有固定规律的,如需要获取上面字符串中的天数。
观察到的结构是‘xxx天’所可以有正则表达式‘/[0-9]+天/i’

$str = "潘某人SEO,365天,每日1帖子";//需要进行筛选的字符串
preg_match_all('/[0-9]+天/i',$str,$row)
$str = $row[0][0];
preg_match_all('/[0-9]+',$str,$row)
echo $row[0][0];//输出结果天数
1
2
3
4
5
申明:本站内容仅代表个人观点,仅供学习参考;未经授权任何个人或组织单位不得复制、转载、摘编以及其它形式的应用! 本站文章可能使用到互联网上的资料,若对您造成困扰,请联系 kk19@foxmail.com除理 本文地址:https://www.chateach.com/it/php/838
相关文章
  • html网页如何禁止打印页面

    禁止打印页面

    html网页如何禁止打印页面方式,可以禁止打印键盘的快捷键组合,但是用户可以直接鼠标操作浏览器来实现打印;所以通过css来屏蔽打印内容的输出更加的合理有效,代码如下所示。

    1577
    • 禁止打印页面
  • php将多维数组根据某个键倒序/升序

    多维数组排序

    php将多维数组根据某个键倒序/升序,一维数组可以用一个简单的krsort() 函数进行升序排列,或者使用 arsort() 函数进行降序排列 。但是如何是多维数组那么情况就会复杂很多,没有可以直接实现多维数组按照某个键值进行排序的函数。

    2121
    • 多维数组排序
  • JS中的indexOf方法

    indexOf

    indexOf()是js中内置的方法之一,它的功能大家都很熟悉:简单来说就是得到数据的索引,对于正则不熟练的人,是个很不错的方法。string中indexOf() 会将数值参数转换为字符再查询索引;number类型没有IndexOf() 可以转换为字符再使用;array中indexOf() 是严格比较

    701
    • indexOf
  • SpringBoot如何实现邮箱验证

    SpringBoot,邮箱验证,验证码发送

    在网站及各种应用中不可避免的需要运用到邮件发送服务,如消息提醒,验证码的发送,都需要使用到邮件发送。大体思路:先生成一个六位随机验证码并存起来,调用邮箱接口发送验证码,将用户输入的验证码和之前保存的验证码进行比对。

    1274
    • SpringBoot
    • 邮箱验证
    • 验证码发送
  • laravel定义全局常量的方法

    laravel全局常量

    在 Laravel项目中有时我们会需要一些全局函数和常量,那么在laravel如何定义一个全局的常量,以及如何的使用全局常量。

    1228
    • laravel全局常量
  • laravel url路由中存在双斜杠(//)造成404问题

    laravel路由双斜杠

    解决在laravel框架下,网站的首页后面加上双斜杠(//),页面显示的尽然不是首页,是一个空白的页面状态码是200,或者报404错误。

    1825
    • laravel路由双斜杠
  • laravel如何封装函数全局调用

    laravel函数封装

    laravel如何封装函数,实现全局调用。我们就拿PHPAnalysis分词程序作为例子来演示下。PHPAnalysis分词程序使用居于unicode的词库,使用反向匹配模式分词,理论上兼容编码更广泛,并且对utf-8编码尤为方便。

    1632
    • laravel函数封装
  • php生成n位随机数

    php随机数

    php如何生成n位的随机数,给大家分享一个简单高效的方法,这里以随机生成6位数作为一个例子给大家演示。使用php的str_pad()和mt_rand()函数生成随机数。

    1477
    • php随机数
  • 解决百度UEditor富文本编辑器回车追加P标签问题

    UEditor,百度富文本编辑器,p标签

    网站的教程很多但是都比较复杂,给大家分享一个1秒可以解决百度富文本编辑器强制自动追加P标签的问题的方法。百度富UEditor富文本编辑器有一个坑就是无论你怎么修改只要你回车或者换行了就会强行追加一个P标签,会严重的影响到我们正常排版。

    2314
    • UEditor
    • 百度富文本编辑器
    • p标签
  • java中的JDK、JRE、JVM三者的区别

    JDK,JRE,JVM

    java中的JDK、JRE、JVM三者的区别,JDK是 Java 语言的软件开发工具包(SDK);JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

    913
    • JDK
    • JRE
    • JVM
  • 如何解决Vue中mounted不能获取到data

    mounted获取data

    Vue中使用mounted时,无法获取到data的原因是,this无法指向data中的数据。在mounted生命周期中this指向的是window对象而不是Vue对象,所以真正找的是window对象下的data,但是window下没有data,所以就报错了。

    1703
    • mounted获取data
  • vue 如何监听滚动至底部

    vue触底监听

    vue如何实现触底判断,实现无限加载等功能。当我们需要实现无限加载的时候,即实现瀑布流的功能的时候,核心就是监听页面的滚动事件,当滚动触底的时候去请求加载数据,既可以实现无限加载下拉。

    1360
    • vue触底监听
  • 什么是css语言

    什么是css

    CSS全称为Cascading Style Sheets(层叠样式表),中文翻译为“层叠样式表”,简称CSS样式表。它是一种用来表现HTML或 XML 等文件式样的计算机语言。

    1055
    • 什么是css
  • vue框架简介及其优势

    vue框架,vue优势

    vue框架简介及其优势,Vue 是一套用于构建用户界面的渐进式JavaScript框架,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。。但是vue对于SEO并不是非常友好,及其解决方案。

    1561
    • vue框架
    • vue优势
  • js在for循环中的闭包的解决方法

    js闭包

    js在for循环中的闭包的解决方法,实现点击li标签获取标签的所处位置。

    981
    • js闭包
  • 手把手教你建立一个自己的网站

    零基础建站

    本站的主要的是分享自己建站过程中遇到的各种问题和解决方案,适合没有任何基础但是想要建立自己的一个网站的朋友,其实如果想要简单的入门让一个网站跑起来是非常的简单的。如果说是采用wordpress等CMS系统来搭建一个网站的话就更加简单了。进本上只要动手能力自学能力强一点,基本上几个小时就可以让一个站点运行起来。

    1572
    • 零基础建站
  • linux服务器如何部署java运行环境

    linux服务,部署java

    linux服务器需要运行java程序那么就需要jvm服务,同时为了方便开发维护直接安装jdk即可。对于java网站的运行则还需要安装Tomcat。下面就以在centos服务器上演示一下java运行环境的部署。

    1046
    • linux服务
    • 部署java
  • Vue3 中全局引入 axios及其使用方法

    axios使用方法,Vue3

    Vue3如何安装axios,如何在全局使用axios,定义全局属性来使用axios,基本上每个页面都要使用到axios,因此在main.js中定义全局属性来实现axios告别繁杂的引用。

    845
    • axios使用方法
    • Vue3
-- 这已经是底线了,看看别的把! --