Character classes(匹配字符)
. :除换行符外的任何字符
w d s :匹配单词,数字,空格
W D S: 匹配非单词,数字,空格
[abc] :匹配a,b或c中的任何一个
[^ abc]: 匹配非a,b或c
[a-g] : 匹配a和g之间的字符
例子:
表达式:[aeiou] 验证字符:glib jocks vex dwarves! 匹配结果:i o e a e
表达式:[^aeiou] 验证字符: glib jocks vex dwarves! 匹配结果:g l b j c k s v x d w r v s !
表达式:[g-s] 验证字符:abcdefghijklmnopqrstuvwxyz 匹配结果:g h i j k l m n o p q r s
表达式:. 验证字符:glib jocks vex dwarves! 匹配结果:glib jocks vex dwarves!
表达式:[sS] 验证字符:glib jocks vex dwarves! 匹配结果:glib jocks vex dwarves!
表达式:w 验证字符:bonjour, mon frère 匹配结果:bnjour monfrre
匹配数字:
匹配非数字:
匹配空格:
匹配非空格:
Anchors(匹配位置)
^abc$:字符串的开始/结尾
B:单词,非单词边界
例子:
表达式:^w+ 验证字符:she sells seashells 匹配结果:she
表达式:w+$ 验证字符:she sells seashells 匹配结果:seashells
表示式:s 验证字符:she sells seashells 匹配结果:s s
匹配非单词边界的任何位置。这匹配一个位置,而不是一个字符:
Escaped characters(匹配转义字符)
. * \ 转义了特殊字符
标签,换行符,回车符
例子:
匹配.:
匹配+:
Groups & Lookaround(匹配组合)
(abc):匹配组合
1:反向引用组合中的元素,元素位置为#1
例子:
Quantifiers & Alternation(量词,懒惰和可选)
*,+,?:0或更多,1或更多,0或1
a {5} ,a {2,}(贪婪的,默认匹配最多):正好5个,2个或更多
a{1,3} :1和3之间
ab | cd(或) :匹配ab或cd
colou?r(可选):0或者1个
a {2,}?(懒惰):尽可能少地匹配
例子:
参考网站:https://regexr.com/