11.常用正则表达式选项
- 非捕获分组 ?:
当我们需要使用()时,但又不想使其分组以增加不必要的内存开销,就可以使用?:
例如:(?: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+) 负正向预查表示前面的是非@。
12.正则表达式中的注释
选项 名称 说明 IgnoreCase 忽略大小写 匹配时不区分大小写,默认区分 Multiline 多行模式 更改$和^的含义,使$匹配整个字符串的结尾位置(即\n之前的位置)。使^匹配整个字符串的开头位置,也匹配任意一行的开头位置(即\n之后的位置) Singleline 单行模式 更改"."的含义,使他匹配任何字符,包括换行符(\n)(注意:它和Multiline之间没有任何联系,虽然名称看上去有) IgnorePatternWhitespace 忽略空白 忽略表达式中的非转义空白,并启用由#标记的注释 ExplicitCapture 显示捕获 仅捕获已经被显式命名的组
- (?#注释内容)
- #注释内容
这个是多行注释,注释内容和正则表达式之间可以有空格,正则表达式会忽略这些空格;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |