首先推荐一个regex在线校验链接: https://regex101.com/.
一、限定符:
限定符都是作用在符号前面的字符或字符串
1.?
?表示?前面的字符可出现0次或者1次,如:user?可以匹配 use 与 user
2.*
*表示*前面的字母可出现0-n个,如:ab*c 可以匹配ac、abc、abbbc
3.+
+表示+前面的字母可出现1-n个,与*的区别在于,*可以匹配0个,如:ab+c 可以匹配abc、abbbc但是不可以匹配ac
4.{n}
{2}表示{2}前面出现n次,如:ab{2}c 只可以匹配abbc,不可以abc、abbbc
{2,6}表示{2,6}前面的字母只能出现2-6次,如:ab{2,6}c 只可以匹配abbc、abbbc 等
{2,}表示{2,}前面的字母只能出现大于等于2次,如:ab{2,}c 只可以匹配abbc、abbbc 等
5.(abc)+多字符匹配
(abc)+表示+前面的字母串abc可出现1-n个,与*的区别在于,*可以匹配0个,如:(abc)+c 可以匹配abc、abcabccc
二、或 运算:
1.a(apple|banana) 或|
可以匹配aapple、abanana,注意括号不可少,如果去掉aapple|banana,则是要么aapple要么banana
三、字符类
1.[abc]+
表示构成只能来自[]内的字母,可以匹配aaaabbbcc、cacbaaa
2.[a-z]+
[a-z]+表示构成只能来自a-z内的小写字母,可以匹配aaaabbbcc、cacbaaa
[a-z0-9A-Z]+表示构成能来自a-z内的小写字母0-9内的数字A-Z内的大写字母,可以匹配aaaabbbcc、cacbaaa123A等
3.[^a-z]+
[^a-z]+表示构成不能来自a-z内的小写字母,换行符也算,不可以匹配aaaabbbcc、cacbaaa
[^a-z0-9A-Z]+表示构成不能来自a-z内的小写字母0-9内的数字A-Z内的大写字母,所以只能匹配标点符号等
四、元字符
正则里面的大多数元字符以\开头,注意是向右
\d代表数字字符,等同于[0-9]
\w代表所有英文字符、数字、下划线
\s代表空白符,包括tab、换行符、空格
\D代表非数字字符,等同于[^0-9]
\W代表所有非 英文字符、数字、下划线
\S代表非空白符,包括tab、换行符、空格
\b表示单词边界
.表示任意字符但不包括换行符
^ 表示行首,如^a只会匹配 行abccc、行asss,不匹配行sasd
$ 表示行尾,如a$只会匹配行bccca、行asssa,不匹配行asasd
五、贪婪与懒惰匹配
举例: < select >666< /select >
贪婪匹配: <.+> 默认会匹配全部< select >666< /select >
懒惰匹配:只需在+后面加上个?即:<.+?> 这只会匹配< select >、< /select >
六、实例
1.匹配颜色
#[a-fA-F0-9]{6}\b
2.匹配ip
\b\d+\.\d+\.\d+\.\d+\b //不完美 \b[0-255]+\.[0-255]+\.[0-255]+\.[0-255]+\b //不完美 \b((25[0-5]|2[0-4]\d|[0-1]?\d\d?)\.){
3}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)\b //完美
讯享网
总结:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/73084.html