正则表达式 学习笔记

来源:互联网 发布:excel身份证性别数据 编辑:程序博客网 时间:2024/05/16 23:47

1.匹配可选字符——使用?    匹配color或colour:colou?r

2.?匹配零次或一次,*匹配零次或多次,+匹配一次或多次

3.{n}匹配n次,{n,m}匹配n到m次,{n,}匹配n到无限次

4.句点(.)元字符匹配任何字母字符(无论大小写),也可以匹配数字、空白字符(如空格符)以及非英语语言中的很多文字字符。多数情况下,它都会匹配除了换行符之外的任何字符。然而也可以通过修改.元字符的这种匹配特性使其匹配换行符。若要匹配目标文档中的一个句点,则需使用反斜杠转义

5.\w匹配英文字母字符、数字、下划线;\W匹配\w不匹配的字符;\d匹配数字;\D匹配非数字;\s匹配任何单个的空白字符(空格符、制表符\t、换行符\n);\S匹配任何非空白字符,但不像句点元字符(根据设置,它会匹配除换行符之外的任何可能的字符)那样会匹配尽可能多的字符

6.匹配文本中的反斜杠字符用\\

7.[CD]等价于(C|D),匹配文本中的方括号需要进行转义 \[  \]

8.在字符类的内部,\b元字符表示一个回格符,在字符类外部表示一个词边界

9.-表示范围 [A-z]匹配A-Z,a-z,并且还匹配Z到a中间的字符(非字母)。若不想用连字符-表示范围,那么连字符应该作为字符类中的第一个字符

10.^元字符,也称脱字符,当它是字符类中左方括号后面的第一个字符时,表示的是方括号中指定的任何字符都不能匹配的情况。如果^元字符不作为方括号中的第一个字符出现,而是出现在其他任何位置上,它的含义都是直接量本身——即匹配^字符。

11.[A-Z&&[^B-D]]匹配处于范围A-Z之间并且不在范围B-D之间的字符

12.^元字符用于字符类之外时,匹配位于一行或一个字符串开始位置后的目标字符,$正好相反,通过$元字符可以指定出现在一个文件结束位置或文件中一行结束位置之前的字符序列。匹配表示美元的符号$时需使用转义\$

13.使用多行模式的情况下,下一行的开始位置会与测试文件的开始位置等同

14.^$ 匹配空白行

15.\<元字符用于识别位于一个词开始位置的词边界,它的前面是一个非字母字符(比如一个空格符)或者是一行的开始位置;\>元字符表示位于一个字母字符序列结尾处的词边界;\b元字符既可以用于匹配位于词开始处的词边界也可以用于匹配词结尾处的词边界。\B元字符匹配一个非词边界的位置

16.圆括号可以对字符进行分组,并保存匹配的文本。一个基本用法是对字符或元字符进行分组,这样在括号内可以对字符组合使用限定符。匹配直接量需要用\(和\)。圆括号还可以表示可选择性(使用()和|)。圆括号可以定义一个组,这个组模式匹配的内容被捕获并指定给变量,在使用嵌套的圆括号时,变量的编号会按照模式中圆开括号出现的位置依次进行。创建命名的组:(?<组名>模式)或(?'组名'模式)。非捕获圆括号的模式:(?:模式).

17.反向引用:使用\1 \2...引用第一个 第二个……变量(圆括号指定的)

18.(?元字符  (?:...)非捕获组  (?=...)肯定式向前查找  (?!...)否定式向前查找  (?<=...)肯定式向后查找  (?<!...)否定式向后查找  向前查找即零宽断言,向后查找即负向零宽断言

19.向前查找根据要匹配的字符序列后面存在一个特定的字符序列或者不存在一个特定的字符序列来决定是否匹配(实际上向前查找指的是一个子模式,这个子模式匹配特定字符序列,但不返回匹配结果。所以从本质上来说向前查找子模式匹配的是测试文本中的位置。所谓向前也是基于这个位置而言的。向前查找也就是向左、向文本中先出现的字符序列中查找要匹配并返回结果的字符序列)