限定符
a*a出现0次或多次
a+ a出现1次或多次
a?a出现0次或1次
a{6} a出现6次
a{2,6} a出现2-6次
a{2,} a出现两次以上
?
:前面的一个字符出现0或1次
例:used?可匹配use和used
*
:前面的一个字符出现0或多次
例:ab*c可匹配ac、abc、abbc,不可匹配adc
+
:前面的一个字符出现1或多次
例:ab+c可匹配abc、abbc,不可匹配ac
{}
:指定匹配范围,如{6}表示前面的一个字符出现6次,{2,6}表示前面的一个字符出现2~6次,{2,}表示前面的一个字符出现2次以上
例:ab{6}c匹配abbbbbbc
ab{2,6}c匹配abbc、abbbc...abbbbbbc
ab{2,}匹配abbc、abbbc...
()
:指定匹配词组,如(ab)将ab视为一个整体
例:(ab)+匹配abc、ababc、abababc
或运算符(OR Operator)
(alb)匹配a或者b
(ab)l(cd)匹配ab或者cd
|
:对内容进行或匹配,如a(cat|dog)匹配a cat、a dog,括号为必不可少的内容,否则会匹配a cat、dog
字符类(Character Classes)
[abc]匹配a或者b或者c
[a-c]同上
[a-fA-F0-9]匹配小写+大写英文字符以及数字
[^0-9]匹配非数字字符
[]
:表示匹配的内容只能取自于括号内的内容
例:
1.全部小写英文字符:[a-z]+
2.全部大写英文字符:[A-Z]+
3.全部英文字符:[a-zA-Z]+
4.全部数字:[0-9]+
5.全部英文字符和数字:[a-zA-Z0-9]+
6.[abc]+
可匹配abc、aabbcc
^
:脱字符,反选匹配^
后面的字符,如[^0-9]+
匹配所有的非数字字符(包括换行符)
例:[^0-9]+
可匹配abc123
中的abc
元字符(Meta-characters)
\d 匹配数字字符
\D 匹配非数字字符
\w 匹配单词字符(英文,数字,下划线)
\W 匹配非单词字符
\s 匹配空白符(包含换行符、Tab)
\S 匹配非空白字符
匹配任意字符(换行符除外)
\bword\b \b标注字符的边界(全字匹配)
^ 匹配行首
$ 匹配行尾
为预定义的常用字符,如数字、单词、空白符、开头、结尾等,以反斜杠开头
\:转义符
\d:数字字符
\w:单词字符,包含英文、数字、下划线
\s:空白符,包含tab(制表符)和换行符
\b:字符边界
\D:非数字字符
\W:非单词字符
\S:非空白字符
.:任意字符(不包含换行符)
^:匹配行首
$:匹配行尾
贪婪/懒惰匹配 (Greedy/Lazy Match)
<.+>
默认贪婪匹配“任意字符”<.+?>
懒惰匹配“任意字符”
贪婪匹配:为默认的匹配方式,匹配尽可能多的字符
例:<.+>
会匹配下面的全部内容
<span><b>this is a sample text</b></span>
懒惰匹配:使用?
,匹配尽可能少的字符
例:<.+?>
会匹配下面的全部标签,如<span>、<b>、</b>、</span>
<span><b>this is a sample text</b></span>
例1:匹配16进制RGB颜色值(开头为#,内容为6位的16进制字符)
#[a-fA-F0-9]{6}\b
例2:匹配IPv4地址(四组用.连起来的数字,数字范围在0~255)
\b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
评论区(暂无评论)