正则

+    前面字符出现次数>=1            
*    前面字符出现次数>=0            
?    前面字符出现次数<=1            
\w    Unicode字符集 > [A-Za-z0-9_]            
\W    等价于 [^A-Za-z0-9_]            
\d    等价于 [0-9]            
\D    等价于 [^0-9]            
/i    忽略大小写      
\s   匹配空白,即 空格,tab键 () 表示域 [\\\\\
/] 匹配\或\\或/ 界定符 表示正则表达式开始和结束 PHP界定符 # / .*? 表示匹配任意字符到下一个符合条件的字符(非贪婪匹配)

 

字符串长度匹配

^.{8,16}

匹配只包含字母和数字的字符串

^[a-zA-Z0-9]+$

匹配8-16位数字和字母密码的正则表达式

String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";

匹配8-16位,至少有一个大写字母和一个数字,不能有三个相同的字符,特殊字符包括~!@&$%^*()_#

String regex = "^(?=.*[A-Z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1)[A-Z0-9~!@&%$^\\(\\)#_]{8,16}$"; 

匹配含有特殊字符的字符串

.*[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、].* 


 

IP/域名

IP地址匹配
((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}
10开头
10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3}
172开头
172\.([1][6-9]|[2]\d|3[01])(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}
192开头
192\.168(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}
内网IP(10172192)
((192\.168|172\.([1][6-9]|[2]\d|3[01]))(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}|10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3})

域名匹配
(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*

匹配字符中间空格
\s+

字段匹配

[\S]{4,20} - 匹配字符在4-20之间的字段

字符匹配

^(.+)\\sand\\s(.+)|(.+)\\sor(.+)\\s$   --检测:  and和or

/(\%27)|(\’)|(\-\-)|(\%23)|(#)/ix          --检测:‘ --和#

((\%3D)|(=))[^\n]*((\%27)|(\’)|(\-\-)|(\%3B)|(:))/i     --检测: = 非换行符 ’ -- :

\w*((\%27)|(\’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix    --检测:  ' or

((\%27)|(\’))union/ix(\%27)|(\’)        --检测: 'union'  '

exec(\s|\+)+(s|x)p\w+/ix               --检测:  exec

 

开源项目

https://github.com/cdoco/common-regex

 

posted @ 2019-07-19 22:18  7hang  阅读(252)  评论(0编辑  收藏  举报