php正则表达式匹配中文,PHP表达式

  php正则表达式匹配中文,PHP表达式

  正则表达式简介

  在一些应用中,往往需要按照一定的规则来匹配(查找)和确认一些字符串,比如要求用户输入的QQ号码必须是至少5位数字的号码。用来描述这些规则的工具是正则表达式。

  最简单的搭配

  最简单的匹配就是直接给字符匹配。如果使用字符A匹配aabab,将匹配三个结果,分别是字符串中的第一个、第二个和第四个字符。这种匹配是最简单的情况,但在实际处理中往往要复杂得多,比如下面的“QQ号是一个至少有5位数的数字”,其对应的正则表达式为:

  ^\d{5,}$

  正则表达式描述要确定的内容至少是5位数。让我们具体看看这个表达式是如何描述这个规则的:

  :表示匹配字符串的开头,即该字符串是独立的,但不包含在字符串中\d:表示匹配的数字{5,}:表示至少匹配了5位或更多$:表示匹配字符串的结尾,即该字符串是独立的。

  现在明确了正则表达式,组合时匹配5位数以上的连续数字,并且有独立的开始和结束,对于5位数以下的数字,或者不是以a123456b等数字开始和结束的数字无效。

  从这个例子可以看出,正则表达式是从左到右描述的。

  同样,如果匹配手机号码的正则表达式是:

  ^1\d{10}$

  因为正则表达式的匹配结果在很多情况下并不是那么确定,所以最好下载一些辅助工具来测试正则表达式的匹配结果。诸如匹配跟踪程序、RegExBuilder和其他类似的工具也是可用的。

  在上面的例子中,\d和$等符号代表特定的匹配含义,我们称之为元字符。常用的元字符如下:

  当我们想要匹配这些元字符时,我们需要使用字符转义函数。同样,正则表达式使用\表示转义。如果我们想匹配。符号,我们需要使用\。否则,将被解释为“除换行符以外的任何字符”。当然,要匹配\,您需要写\ \

  连续的数字或字母可以用号连接,比如匹配所有小写字母,[1-5]匹配1到5这五个数字。

  正则表达式的强大之处在于它们能够在模式中包含选择和循环。正则表达式使用一些重复规则来表示循环匹配。

  常用的重复如下:

  分支是指制定几个规则。如果满足任何一个规则,将被视为匹配成功。具体来说,使用符号分隔各种规则,从左到右匹配条件。

  因为分支规则,只要匹配成功,后面的条件都不会匹配,所以如果要匹配有包含关系的内容,请注意规则的顺序。

  下面是一个使用分支的例子。

  美国邮政编码的规则是5位数或5位数与4位数相连,如12345或54321-1234。如果要匹配所有邮政编码,正确的正则表达式是:

  \d{5}-\d{4}\d{5}

  //写错了

  \d{5}\d{5}-\d{4}

  下面写错的只能匹配九位的五位和前五位,不能匹配九位的邮政编码。

  在正则表达式中,一些规则可以作为组包含在括号中,组可以被视为元字符。

  分组示例,验证IP地址:

  (\d{1,3}\。){3}\d{1,3}

  这是一个用于匹配IP地址的简单且不完美的正则表达式,因为它除了可以匹配正确的IP地址外,还可以匹配不存在的IP地址,如322.197.578.888。

  当然,用这个表达式简单匹配成功后,可以利用PHP的算术比较来判断IP地址是否正确。但是,正则表达式中没有算术比较函数。如果您想要完全匹配正确的IP地址,您需要对其进行如下改进:

  ((25[0-5]2[0-4]\d[01]?\d\d?)\.){3}(25[0-5]2[0-4]\d[01]?\d\d?)

  这个规则的重点是确定每段IP地址的范围从0到255,然后重复四次。在:

  25[0-5]2[0-4]\d[01]?\d\d?

  在,250-255和200-249首先由分枝决定。[01]?\d\d?然后确定0-199的范围,也就是0-255。

  贪婪和懒惰

  默认情况下,当满足匹配条件时,正则表达式将匹配尽可能多的内容。比如a.*b,用他来配aabab。它将匹配整个aabab,而不仅仅是aab。这就是贪心匹配。

  对应贪婪匹配,在满足匹配条件的情况下匹配尽可能少的内容,这就是懒匹配。

  对应于上述示例的惰性匹配规则是:

  a.*?b

  如果用这个表达式匹配aabab,会得到两个匹配结果,aab和ab。

  常用的惰性限定符如下:

  图案修改器

  修饰符标注在整个正则表达式之外,可以看作是对正则表达式的一些补充说明。

  的常见模式修饰符如下:

  preg_replace()函数通常替换替换字符串中的反向引用,将其作为PHP代码进行计算,并用其结果替换搜索到的字符串。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括
  • 七种php开发环境搭建工具有哪些,七种php开发环境搭建工具包括,七种PHP开发环境搭建工具
  • php高并发三种解决方法,php 高并发解决方案
  • php高并发三种解决方法,php 高并发解决方案,PHP解决高并发问题(opcache)
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么
  • php邮件发送的两种方式区别,php邮件发送的两种方式是什么,php邮件发送的两种方式
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频
  • php跳转页面的几种实现方法详解图,php跳转页面的几种实现方法详解视频,PHP跳转页面的几种实现方法详解
  • PHP购物车,php立即购买和购物车功能
  • PHP购物车,php立即购买和购物车功能,php实现购物车功能(上)
  • php读取pdf数据,php pdf读取
  • php读取pdf数据,php pdf读取,PHP中使用mpdf 导出PDF文件的实现方法
  • php网站判断用户是否是手机访问的方法有哪些,php如何判断用户是否登录
  • 留言与评论(共有 条评论)
       
    验证码: