标准字符集合:
能够与'多种字符'匹配的表达式
注意区分大小写,大写是相反的意思
\d :任意一个数字,0~9中的任意一个
\D:,0~9以外的全部
\w:任意一个字母或数字或下划线,就是说A~Z,a~z,0~9,_ 中任意一个
\W:任意一个字母或数字或下划线,就是说A~Z,a~z,0~9,_以外的全部
\s:包括空格、制表符、换行符等空白字符的其中任意一个
\S:空格、制表符、换行符等空白字符以外的全部
.:小数点可以匹配任意一个字符(除了换行符)如果要匹配包括"\n"在内的所有字符,一般用[\s\S]
自定义字符集合: ^表示取反
[]方括号匹配方式,能够匹配方括号中任意一个字符
[ab23] : 匹配"a"或"b"或"2"或"3"
[^ab23] : 匹配"a""b""2""3"之外的任意一个字符
[a-z] : 匹配"a"~"z"之间的任意一个字母
[^A-Z0-9] :匹配"A"~"Z","0"~"9"之外的任意一个字符
注意!!!!:正则表达式的特殊符号,被包含在[ ]里面时,会失去特殊意义,除了^ - 之外
标准字符集合,除小数点外,如果被包含于[ ],自定义字符集合将包含该集合。比如
[\d.\+-]将匹配到 数字、小数点→.、+、-
量词:
修饰匹配次数的特殊符号
{n} 表达式重复n次:\d{5} 1 2 3 45 67891 匹配到67891
{m,n} 表达式重复m-n次: \d{2,5} 1 2 3 456 78910 匹配到456 78910
{m,}表达式至少重复m次: \d{3,} 1 2 3 456 78910 匹配到78910
一般都是贪婪模式:匹配的越多越好
非贪婪模式(匹配字符越少越好修饰匹配次数的特殊符号后再加上一个"?"号):刚好够数那么就重新计算比如:
\d{3,5}? 1 2 3 456 789101 匹配456 789重新匹配101
?用法:
?匹配表达式0次或者1次相当于{0,1}
a\d?b ab a1b a2b a12b a12345b 匹配到ab a1b a2b
↑式等同于→ a\d{0,1}b
+用法:
至少出现一次,相当于{1,}
a\d+b ab a1b a2b a12b a12345b 匹配到a1b a2b a12b a12345b
↑式等同于→a\d{1,}b
*用法:
表达式不出现或出现任意次,相当于{0,}
a\d*b ab a1b a2b a12b a12345b 匹配到ab a1b a2b a12b a12345b
↑式等同于→a\d{0,}b
^b: ^配合字母/数字表示文本 第一个开头的字母且要和文本第一个字符一致(与字符串开始的地方匹配)
bi love u1 匹配 b
b$:$配合字母/数字表示文本 最后一个开头的字母且要和文本最后一个字符一致(与字符串结束的地方匹配)
bab a1b a2b a12b a12345b 匹配a12345b 中的b
\b:配合字母/数字表示左/右不全是他表示的字符(前面的字符和后面的字符不全是\w)比如
a12\b bab a1b a2b a12b a12345b bbbbba12 aa12 匹配 bbbbba12 aa12 中的a12
\ba12 bab a1b a2b a12b a12345b bbbbba12 aa12 匹配 a12b a12345b 中的b12
选择符和分组
| 作用:左右两边表达式之间"或"关系,匹配左边或者右边
() 1、再被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
2、去匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
3、每一对括号会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。捕获元素编号为零的第一个捕获是由整个正则表达式模式匹配的文本
[a-z]{6} i love lovors ^ ^ ^ 1 2 3 456 789101-- 匹配其中的 lovors
\nnn反向引用
每一对()都会分配一个编号,使用()的捕获根据左括号的顺序从1开始自动编号。通过反向引用,可以对分组已捕获的字符串进行引用
([a-z]{2})\1 doto dodo toto wewe wedo 匹配dodo toto wewe(也就是说在同样的2个字母后面还需要跟同样的两个字母)
()()()\1 指第一个括号 ()()()\2指第二个括号 ()()()\3指第三个括号