正则
+ 前面字符出现次数>=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(10,172,192) ((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