正则表达式必须掌握三个知识点,你知道多少?

什么是正则表达式?

正则表达式又称为规则表达式(模式表达式),它自身有完整的语法,为我们提供了一种更加灵活的字符串处理方法,正则表达式功能远比php字符串函数强大的多。正则表达式通过特定的模式,与输入的字符串比较,实现字符串的匹配、查找、替换等操作。这些模式的字符串,放在特定的正则表达式函数中使用才有效果。比如说“/w+([-+.]w+)*@w+([-.]w+)*.w+(-.)w+)*/”这是一个匹配邮箱的正则表达式。上面是一个简单的正则表达式,它按照正则表达式语法规则构建的,由普通字符和特殊功能的字符组成的字符串,这些模式字符串放在特定的正则表达式函数中使用才能有效果。

正则表达式作用

如果是第一次接触正则表达式,会感觉到它很繁琐,有种难以捉摸的感觉。正则表达式描述字符排列模式的一种自定义语法规则,在PHP中使用这种模式对字符串进行匹配、查找、替换及分割的操作,它的使用很广。最常见的是用正则表达式去验证用户提交的用户名、密码等信息是否符合规则;按标点符号计算文章有多少句子;抓取页面中的链接等;正则表达式不是PHP自己独有的,在其他语言比如说c#和java语言中也有应用,在B/S软件开发中、JavaScript、php以及mysql数据库都可以使用正则表达式。

PHP中正则表达式特点

在PHP中支持两套正则表达式的处理函数库。一套是PCRE库提供的,与Perl语言兼容的正则表达式函数。使用preg_为前缀命名的函数,而且表达式都包含在定界符中,如斜线/。另一套是POSIX扩展语法的正则表达式函数,使用以“ereg_”为前缀命名的。PCRE和POSIX两套函数库功能相似,执行效率有所不同,一般来说PCRE效率要高些。

正则表达式语法规则

正则表达式有自己完整体系的语法,正则表达式作为一个匹配的模板,正则表达式=原子(比如说字符a到z)+特殊字符(元字符,比如说*、+和?等)+模式修正符。正则表达式由三部分构成的,最简单的正则表达式,至少要包括一个原子。而且在与Perl语言兼容的表达式函数使用时,一定要加上定界符(包括在两个反斜杠“/”之间)。

正则表达式必须掌握三个知识点,你知道多少?

1、定界符

使用与Perl兼容的正则表达式,通常需要将模式表达式放入定界符之间。最常见的定界符是反斜线“/”,除了字母、数字和正斜线“”以外的任何字符都可以作为定界符号,例如“#”、“!”、“{}”等都是可以的。

2、原子

原子是正则表达式基本单位,每个正则表达式模式至少有一个原子。原子包含所有的大小写字母、数字、标点符号、其他的符号。例如,a-z、A-Z、0-9等,还有一些非打印的字符,如下图:

3、元字符

元字符就是正则表达式的具有特殊意义的字符,例如*、+、?等。如果正则表达式中包含元字符本身,使其失去特殊的含义必须加上“”进行转义。正则表达式常见的元字符如下图:

在网页中任何属于HTML有效的链接标签,都可以和这个正则表达式模式匹配上。该模式拆分后如下:

1、定界符使用是两个反斜线“/”之间,模式放在它之间声明。

2、原子用到等普通字符和、 、 等转移符。

3、元字符用到[]、?、*、+等特殊含义的字符。

4、用到的模式修正符是在定界符后加一个反斜杠之后的三个字符“s”、“i”和“m”。

今天关于PHP中的正则表达式内容先说到这,改天咱们在接着聊。每天学习一个知识点,每日寄语“当你停止尝试时,就是失败的时候。”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180806A0IZV300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券