正则表达式笔记

元字符:

1.“. 匹配任意单个字符;转义 \.;当放在字符集合中时,会当成普通字符

2.字符集合:[],字符集合的匹配结果是能够与该集合里的任一成员相匹配的文本

3.字符区间-, 字符区间的首尾字符可以是ASCII字符表里的任意字符。-作为元字符只能用在字符集合里,在字符集合以外都作为普通字符,不需要转义。

4.取非匹配:^的效果是字符集合里的所有成员

5.匹配空白字符:

[\b]<=> backspace

\f 换页符

\n换行符

\r 回车符

\t 制表符

\v 垂直制表符

6.匹配特定的字符类别:

 \d 任何一个数字字符,等价于[0-9]

 \D 任何一个非数字字符,等价于[^0-9]

\w 任何一个字母数字或下划线字符,等价于[a-zA-Z0-9_]

\W任何一个非字母数字或非下划线字符,等价于[^a-zA-Z0-9_]

\s 任何一个空白字符,等价于[\f\n\r\t\v]

\S任何一个非空白字符,等价于[^\f\n\r\t\v]

注:[\b]是个特例,不在\s范围内,属于\S

十六进制与八进制:例

 \x0A<==> \n

 \011<==>\t

POSIX字符类:

[:alnum:] 任何一个字母或数字,等价于[a-zA-Z0-9]

[:alpha:] 任何一个字母,等价于[a-zA-Z]

[:blank:] 空格或制表符,等价于[\t ],t后面加了一个空格

[:cntrl:] ASCII控制字符,ASCII 0-31,再加上127

[:digit:]任何一个数字,等价于[0-9]

[:graph:][:print:]一样,但不包括空格

[:print:]任何一个可打印字符

[:lower:]任何一个小写字母,等价于[a-z]

[:punct:]即不属于[:alnum:]也不属于[:cntrl:]的任何一个字符

[:space:]任何一个空白字符,包括空格,等价于[\f\n\r\t\v ],v后面加了一个空格

[:upper:]任何一个大写字母,等价于[A-Z]

[:xdigit:]任何一个十六进制数字,等价于[a-fA-F0-9]

7.重复匹配

 匹配一个或多个字符:将+置于一个字符或字符集合之后,当给字符集合加+时,要把+放在[]外面,放在里面会被当成是普通字符。其转义为\+

 匹配0个或多个字符:*,与+的用法一样。

 匹配0个或一个字符:?

 匹配的重复次数:{num},指定一个字符或字符集合重复num次;也可指定一个区间{min,max}。还可指定最少重复多少次,不设上限{min,}。

防止过度匹配:在匹配文本时,*+总是尽可能的从文本开头匹配到文本结尾,而不是在遇到第一个匹配时停下。可以用其懒惰版本防止。

*对应 *

+对应+

n,}对应{n,?  

例:文本:1231234 正则表达式:[\d]{3,} [\d]{3,}? 

8.位置匹配

 单词边界:\b标识一个单词的开始和结束;\b匹配且只匹配一个位置,不匹配任何一个字符。 \B标识非单词的开始和结束。例: \B-\B 文本:- abc ad-de

 字符串边界:^$分别表示字符串的开头和结束

 分行匹配模式:(?m)必须放在整个模式的前面,分行匹配模式,将每行的字符各当成一个字符串,即将行分割符当成字符串分割符。但不是每一个正则表达式都支持

9.使用子表达式

 (),子表达式还可以嵌套

10.回溯引用

 \num 表示引用第几个子表达式

有些正则表达式支持命名捕获;

 在替换操作中的使用:搜索表达式:exp1...exp2) 替换表达式:  ...$1...($2)... 

 $1表示引用搜索的结果。回溯引用可以跨模式使用。

11.大小写转换:

 \l 把下一个字符转换为小写

 \u 把下一个字符转换为大写

 \U \E 把两者之间的全部转换为大写

 \L \E 把两者之间的全部转换为小写

12.前后查找:有的正则表达式不支持

 向前查找: ?=开头的子表达式,匹配但不消费

 向后查找:?<=

 负向前:?!

 负向后:?<!

13.嵌入条件

  回溯引用条件

  前后查找条件引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值