正则表达式语法

1、行的起始和结束

^:表示一行的开始
^cat:匹配的是以c作为一行的第一个字符,紧接着一个a,紧接一个 t 的文本
 $:表示文本以什么结束
 

2、字符组

1)匹配若干个字符之一

gr[ae]y:先找到 g ,跟着是一个 r,然后是一个 a 或 e,最后一个 y

 
<h[1-3a-b]>:‘-’(连字符),用来表示一个范围
 

2)排除型字符组

<h[^2^4^d]>: ‘^’表示排除
 

3、用点号匹配任意字符

03.19.76:点号表示匹配任意字符
 

4、多选结构

匹配任意子表达式

|:或,依靠它,能够把不同的子表达式组成一个总的表达式,而这个总的表达式又能够匹配任意的子表达式。
Jeff(re|er)y:先匹配 Jeff 然后 是 re 或 er 最后 y
 

5、可选元素

July? (fourth|4th) :问号表示可选项,即 y 这个字符可以存在也可以不存在
 

6、其它量词:重复出现

<h1 +color *= *"red" *> : 
加号是表示加号之前的字符必须出现,并且重复无数次,这里表示 h1 后面必须有一个空格。
星号表示星号之前的字符可以不出现,但是出现必须是前面的字符并且可以出现无数次。这里表示 color 之后可以有空格并且可以有无数个,也可以没有空格

1)规定重现次数范围:区间

w{1,2}:表示w至少出现一次,最多出现2次
 
 

2)表示重复的元字符小结


次数下限次数上限含义
可以不出现,也可以只出现一次(单次可选)
*可以出现无数次,也可以不出现(任意次数均可)
+1可以出现无数次,但至少要出现一次(至少一次)

7、括号及反向引用

([a-z])([1-9])12 :表示第一个字符范围为 a 到 z,第二个字符范围为 1 到 9,第三个字符与第一个括号的值一样,第四个字符与第二个括号的值一样。
括号能够“记忆”其中的子表达式匹配的文本值,不论这个文本是什么,元字符列  ‘1’ 可以记住他们。
 

8、转义

www.baidu.com :将元字符 点 转义为普通的字符
 

9、总结



匹配单个字符的元字符

元字符匹配对象
.点号匹配单个任意字符
[...]字符组匹配单个列出的字符
[^...]排除型字符组匹配单个列出的字符
char转义字符若char是元字符,或转义序列无特殊含义时,匹配char对应的普通字符
提供计数功能的元字符
?问号容许匹配一次,单非必须
*星号可以匹配多次,也可能不匹配
+加号至少需要匹配一次,至多可能任意多次
{min,max}区间量词至少需要min次,至多容许max次
匹配位置的元字符
^脱字符匹配一行的开头位置
$美元符匹配一行的结束位置
<单词分界符匹配单词的开头位置
>单词分界符匹配单词结束位置
其它元字符
|alternation匹配一行的开头位置
(...)括号限定多选结构的范围,标注量词作用的元素,为反向引用“捕获”文本
1,2反向引用匹配之前的第一,第二组括号内的字表达式匹配的文本










原文地址:https://www.cnblogs.com/caizheng/p/6155171.html