专栏首页PHP在线正则表达式详解

正则表达式详解

点号(.)是元字符,匹配除换行符以外的任意字符。

星号(*)是元字符,代表数量。 点号星号连在一起就是匹配任意数量的不包括换行符的字符。 \s匹配任意空白字符。 \b匹配单词开始或者结束。 []匹配括号中的任意一个字符。 电话正则: 0\d{2}-\d{8} {5-18}错误,应该{5,18}匹配5至18位 匹配标题 <title>.*<\/title> {n,}//重复n次或者n次以上 [aesdfs]//匹配任意一个字符 [.?!]//匹配标点符号 c[aou]t//匹配cat,cot,cut三个单词,而不匹配caout 下面是一个纠正我错误理解的例子: $reg = "/[aby\}]/"; }是个元字符,所以使用\}表示},但实际上这个转义却是多余的,因为}在字符组中,无法发挥意义,不会引起歧义,所以不需要转义。那么字符串中有\会不会被当作普通字符呢?实际没有没有被匹配。如果需要匹配需要这样写: $reg = "[}aby\\]"; 下面的例子: c[aou?*)]t // 其中?和*号都不需要转义。原因字符组里匹配单个字符。 电话号码多种格式匹配: \(?0\d{2}[)-]?\d{8} 可以匹配到:(099)88888888 088-99999999 09999999999 [^a] 匹配非a的任意字符 \S 不包含空白符的字符串 匹配链接地址: <a[^>]+> <a href="http://www.beijingqingnian.com">北京青年</a> 结果:<a href="http://www.beijingqingnian.com"> 分支概念: 例如:要匹配 cat,hat,fat,toat的正则表达式 分析前面匹配可以是c,h,f,to,然而[]只能匹配单个字符,此时就可以用分支形式: (c|h|f|to)at 其中括号中的表达式视作一个整体,"|"表示分支,对于单字符情况,字符组效率更高。 电话号码: \(0\d{2}\)[- ]? \d{8}|0\d{2}[- ]? \d{8} 注意:匹配分支条件时,从左向右匹配,如果满足某个条件就不会考虑其他条件了。 例如:\d{5}|\d{5}-\d{4} 只匹配5位邮编以及9位邮编的前5位 分组应用 匹配IP:(\d{1,3}\.){3}\d{1,3} 严格来讲这个表达式是有问题的,因为每个数字不能大于255 ((2[0-4]\d|25{\[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

本文分享自微信公众号 - php(phpdaily)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-08-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP中正则表达式学习及应用

    正则表达式元字符 * 匹配前一个内容的0次1次或多次 . 匹配内容的0次1次或多次,但不包含回车换行 + 匹配前一个内容的1次或多次 ?匹配前一个内容...

    wangxl
  • 了解PHP中Stream(流)的概念与用法

    Stream是PHP开发里最容易被忽视的函数系列(SPL系列,Stream系列,pack函数,封装协议)之一,但其是个很有用也很重要的函数。Stream可以翻译...

    wangxl
  • Table被web编程弃用的原因

    Table要比其它html标记占更多的字节。 (延迟下载时间,占用服务器更多的流量资源。) Tablle会阻挡浏览器渲染引擎的渲染顺序。 (会延迟页面的生成...

    wangxl
  • 正则表达式-分隔符示例

    文本中经常需要匹配分隔符内的内容,像程序中的注释以/*开头,*/结尾;双引号""内的字符等,我们今天以这个例子来一步步的构建这个正则表达式

    Dylan Liu
  • 正则表达式-2.重复匹配

    在上面例子中,第一个<B>和最后一个</B>中间的内容被/.*/全部匹配出来了。这就是“贪婪型”的元字符。 要想分别匹配两个B标签中中间的内容,需要使用“懒惰...

    悠扬前奏
  • 写给前端的正则表达式入门

    在 JavaScript 中,使用 // 即可创建一个正则表达式对象,当然也可以使用 new RegExp()

    savokiss
  • 面试官:你竟然连这么简单的正则表达式都不会写?

    正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScript、还是后端的Java、c#。他们都提供相应的接口/函数支持正则表达式。

    用户5224393
  • 正则表达式-锚点及模式修饰符

    本节已经把常用的元字符全部都罗列完了,Unicode相关的控制\p等没有列出,平常用不太多,把这些融汇贯通基本就可以解决90%的正则问题了。接下来我们来探讨一下...

    Dylan Liu
  • 正则表达式真的很骚,可惜你不会写!

    正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScript、还是后端的Java、c#。他们都提供相应的接口/函数支持正则表达式。

    Java团长
  • 不会正则表达式?看这篇就够了!

    元字符说明.匹配除换行符以外的任意字符w匹配字母或数字或下划线或汉字s匹配任意的空白符d匹配数字匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束

    黄泽杰

扫码关注云+社区

领取腾讯云代金券