A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hehe04 中级黑马   /  2012-8-29 19:57  /  1877 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

10.预查


  • 非捕获分组  ?:
    当我们需要使用()时,但又不想使其分组以增加不必要的内存开销,就可以使用?:
    例如:(?:tr|b)ee 此时,系统不会为其分组和指定组号。

  • 正向预查 (?=)和负正向预查(?!)
    举例说明,例如:我们想获取一系列邮箱地址中的用户名时。 “fangyan33@gmail.com 123@163.com nsna@qq.com
    正则表达式: (/w+)(?=@)   负正向预查表示
    后面跟的是非@。

  • 反向预查(?<=)和负反向预查(?<!)
    举例说明,例如:我们想获取一系列邮箱地址中的二级域名时(163 ,gmail,qq等 )。 “fangyan33@gmail.com 123@163.com nsna@qq.com
    正则表达式: (?<=@)(/w+)   负正向预查表示前面的是非@。





11.常用正则表达式选项


选项名称说明
IgnoreCase忽略大小写匹配时不区分大小写,默认区分
Multiline多行模式更改$和^的含义,使$匹配整个字符串的结尾位置(即\n之前的位置)。使^匹配整个字符串的开头位置,也匹配任意一行的开头位置(即\n之后的位置)
Singleline单行模式更改"."的含义,使他匹配任何字符,包括换行符(\n)(注意:它和Multiline之间没有任何联系,虽然名称看上去有)
IgnorePatternWhitespace忽略空白忽略表达式中的非转义空白,并启用由#标记的注释
ExplicitCapture显示捕获仅捕获已经被显式命名的组




12.正则表达式中的注释
  • (?#注释内容)
  • #注释内容  
    这个是多行注释,注释内容和正则表达式之间可以有空格,正则表达式会忽略这些空格;





1 个回复

倒序浏览
值得收藏和学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马