正则表达式

2022-05-05 15:17:39 浏览数 (1)

正则表达式语法

普通字符

没有特殊限定的时候匹配一个相同的字符

简单转义字符

n

换行符

t

制表符

字符

字符本身

标准字符集合

能够与多种字符匹配的表达式

区分大小写,大写取反

d

0~9中任一字符

w

字母数字下划线,A~Z,a~z,0~9,_

s

空格、制表符、换行符等任一空白符

.

任何一个字符

自定义字符集合

[]匹配方式,匹配方括号中的任一字符

[ab5@]

匹配"a"、"b"、"5"或"@"

[^abc]

匹配"a"、"b"、"c"以外的任一字符

[f-k]

匹配"f"~"k"中的任一字符

[^A-F0-3]

匹配"A"~"F"、"0"~"3"以外的任一字符

特殊符号,被包含到中括号中,失去特殊意义,除"^"和"-"以外

标准字符集,除小数点外,如果被包含于中括号,自定义字符集包含该集合。如:

  • [d.- ]将匹配:数字、小数点、"-" 、" "
量词

修饰匹配次数的特殊符号

{n}

表达式重复n次

{n,m}

表达式至少n次,至多m次

{n,}

表达式至少n次

?

匹配0或1次

至少1次

*

0次到任意次

匹配次数中的贪婪模式(匹配字符越多与好,默认)

匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后面加"?",例:"d?")

字符边界

字符所处的位置,零宽(不占位)

^

字符串开始

$

字符串结束

b

单词边界(前面和后面的字符不全是w)

正则表达式匹配模式

IGNORECASE忽略大小写模式

  • 匹配时忽略大小写
  • 默认情况下,区分大小写

SINGLELINE单行模式

  • 整个文本看作一个字符串
  • 小数点“.”可匹配任一字符,包含“n”

MULTILINE多行模式

  • 每行都是一个字符串,都有开头和结尾
  • 匹配开始A,匹配结束Z
选择符和分组

|

分支结构,表示“或”的关系

()

捕获组:1、括号中的作为整体2、取结果时,括号中的内容可以单独得到3、从左括号开始编号,第一个“(”是1,0为整个表达式

(?:expression)

非捕获组,不保存()中的信息,节省内存开支

反向引用(nnn)

  • 通过反向引用可以对分组已捕获的字符串进行引用
预搜索(零宽断言、环视)

对子表达式匹配,匹配内容不计入匹配结果,零宽

(?=exp)

后面能匹配表达式exp

(?<=exp)

前面能匹配表达式exp

(?!exp)

后面不能匹配表达式exp

(?<!exp)

前面不能匹配表达式exp

0 人点赞