PHP正则表达式由元字符和文本字符组成,PHP正则语法规则都有哪些?

编辑:admin时间:2017-02-25 点击:
文章摘要: 详述了PHP正则表达式由元字符及文本字符组成,并向大家说明了什么是行定位符,单词定界符,选择字符,连字符等...

正则表达式语法规则都有哪些?

一个正常的PHP正则表达式由元字符和文本字符这两部分构成,元字符就是具有特殊含义的字符,如前面提到的“*”和“?”。文本字符就是普通的文本,如字母和数字等。 PCRE风格的正则表达式一般都旋转在定界符 “/” 中间。如“/\w+([-+.']\w+)*@\w+/”([-.']\w+)*\.\w*\.\w+([-.']\w+)*/“、”/^http:\/\/(www\.)?.+.?$/“。为了便于读者理解,除了个别实例外,本节中的表达式不给出定界符”/“。

正则表达式语法

php正则:行定位符(^和$)说明

行定位符就是用来描述字符串的边界。”^“表示行的开始;”$“表示行的结尾。如:
^tm
该表达式匹配字串”tm“的开始位置是行头,如”tm equal Tomorrow Moon“就可以匹配,而”Tomorrow Moon equal tm“则不匹配。但如果使用:
tm$
则后者可以匹配而前者不能匹配。如果要匹配的字串可以出现 在字符串的任意部分,那么可以直接 写成:
tm
这样两个字符串就都可以匹配了。

php正则:单词定界符(\b和\B)说明

继续上面的实例,使用 tm 可以匹配在字符串中出现 的任何位置。那么类似 html、utmost 中的 tm 也会被查找出来。但现在需要匹配的是单词 tm ,而不是单词的一部分。这里可以使用单词定界符 \b ,表示要查找的字串为一个完整的单词。如:
\btm\b
还有一个大写的 \B ,意思和 \b 相反。它匹配的字串不能是一个完整的单词,而是其它单词或字串的一部分。如:
\Btm\B
 

php正则:字符类(^和$)说明

正则表达式是区分大小写的,如果要忽略大小写可使用方括号表达式”[]“。只要匹配的字符出现在方括号内,即可表示匹配成功。但要注意,一个方括号只能匹配一个字符。登台,要匹配的字串 ”tm“ 不区分大小写,那么该表达式应该写作如下格式:
[Tt][Mm]
这样,即可匹配字串 ”tm“ 的所有写法。POSIX 和 PCRE 都使用了一些预定义符类。但表示方法略有不同。POSIX 风格的预定义字符类如表 6.1 所示。
POSIX预定义字符类
而PCRE的预定义符类则使用反斜线来表示。

php正则:选择字符(|)说明

还有种方法可以实现上面字符类的匹配模式,就是使用选择字符(|)。该字符可以理解为”或“,如上例也可以写成:
TM|tm|Tm|tM

php正则:连字符(-)说明

变量的命名规则是只能以字母和下划线开头。但这样一来,如果要使用正则表达式来匹配变量名的第一个字母,要写为:
[a,b,c,d...A,B,C,D...]
这无疑是非常麻烦的,正则表达式提供了连字符”-“来解决这个问题。连字符可以表示字符的范围。如例可以写成:
[a-zA-Z]

php正则:排除字符([^])说明

上面的例子是匹配符合命名规则变量。现在反过来,匹配不符合命名规则的变量,正则表达式提供了 ”^“ 字符,表示行的开始,而这里将 ”^“ 放到方括号中,表示排除的意思。例如:
[^a-zA-Z]
该表达式匹配的就是不以字母和下划线开头的变量名。

php正则:限定字符(?*+{n,m})说明

经常使用 google 的用户可能会发现,在搜索结果页的下方, google 中间字母 o 的个数会随着搜索页的改变而改变。那么要匹配字串的正则表达式该如何实现呢?

对于这类重复出现字母或字串,可以使用限定符来匹配。限定符主要有6种,如下图所示:

php正则限定符

可以发现,在上图中,实际已经对字符串进行了匹配,只是还不完善。通过观察发现,当google搜索结果只有一页时,不显示google标志,只有大于等于2时,才显示google。说明字母O最少为两个,最多为20个,那么正则表达式为:
go(2,20)gle

php正则:点号字符(.)说明

如遇到这样的试题:写出5~10个以s开头、t 结尾的单词,这是有很大难度的,如果考题并不告知第一个字母,而是中间任意一个,无疑难度会更大。

在正则表达式中可以通过点字符(.)来实现这样的匹配。点字符(.)可以匹配出换行符外的任意一个字符。注意,是除了换行符外的。如匹配 s 开头、 t 结尾、中间包含一个字母的单词。格式如下:
^s.t$

匹配的单词包括:sat\sct\sit等。再举一个实例,匹配一个单词,它的第一个字母为r,第3个字母为s,最后一个字母为t。能匹配该单词的正则表达式为:
^r.s.*t$

php正则:转义字符(\)说明

正则表达式中的转义字符(\)和PHP中的大同小异,都是将特殊的字符(如“.”,“?”,“\”等)变为普通字符。举一个IP地址的实例,用正则表达式匹配诸如 127.0.0.1 这样格式的IP地址。如果直接使用点字符,格式为:
[0-9]{1,3}(\.[0-9]{1,3}){3}

其它php正则元字符

除了以上还有以下元字符,如:反斜线(\)、括号字符(())、反向引用、模式修饰符等

 

 

头像
验证码: 点击我更换图片
最新评论 进入详细评论页>>

202.109.254.170ADFDASFDA


110.80.8.234adsfasfads


202.109.254.170d


202.109.254.170adfadsfda


110.80.8.234adfdaf


Array ( [id] => 3 [aid] => 27 [typeid] => 16 [username] => admin [arctitle] => PHP正则表达式由元字符和文本字符组成PHP正则语法规则都有哪些? [ip] => 110.80.8.234 [ischeck] => 1 [dtime] => 1487820500 [mid] => 1 [bad] => 0 [good] => 0 [ftype] => feedback [face] => 1 [msg] => adfdaf )
    2010-2020年共有文章27篇
    2016年12月共1篇,31天
  1. 1,织梦自适应 网络公司工作室
  2. 2017年1月共21篇,31天
  3. 1,静态页面或网站伪静态化对SEO优化有哪些好处?
  4. 2,红包大战开始 巨头纷纷入华备战AR 移动端和人工智能成一大主流
  5. 3,看病就医遇到了互联网+ 带来诊疗模式变化 改善患者就医体验
  6. 4,如何使用百度站长工具百度链接提交主动提交工具实现链接提交
  7. 5,什么是响应式网站 HTML5自适应网站有哪个优缺点?
  8. 6,网络公司 网站建设公司官网建设
  9. 7,电机电器公司官网 电力系统 电器设备网站
  10. 8,装修公司网站建设|装饰公司装潢队网站
  11. 9,厦门做网站要多少钱?网站建设价格知多少
  12. 10,个人企业做网站的必要性和为什么要做网站?
  13. 2017年2月共5篇,28天
  14. 1,PHP正则表达式由元字符和文本字符组成,PHP正则语法规则都有哪些?
  15. 2,详解PHP正则表达式:什么是正则表达式?
  16. 3,详解PHP正则表达式有什么用及怎么使用正则表达式
  17. 4,DEDEcms织梦使用dede:sql标签实现按日期时间段调用文章列表
  18. 5,如何学好PHP,自学php会面临哪些问题?