常用正则表达式大全,匹配及语法
如果缺少,还望各位补充
正则表达式匹配
java:
匹配字符.matches(正则表达式);
(没有严格要求^开头和$结尾)
js:
正则表达式.test(匹配字符);
匹配字符.match(正则表达式);
(/^开头 结尾$/)
正则表达式大全
1:身份证验证
^(^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)$
2:手机号码
^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\d{8}$
3:用户名 匹配中文,英文,数字和下划线 2-10位
^[\u4e00-\u9fa5\w]{2,10}$
4:账号 纯数字 数字+字母
^[0-9]{7,15}$
^[0-9a-zA-Z]{7,15}$
5:密码 强 中 弱 7~18
^(?![a-zA-Z]+$)(?!\d+$)(?![!@#$%^&*\.]+$)(?![a-zA-Z\d]+$)(?![a-zA-Z!@#$%^&*\.]+$)(?![\d!@#$%^&*\.]+$)[a-zA-Z\d!@#$%^&*\.]{7,18}$
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,18}$
^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*\.]+$)[a-zA-Z\d!@#$%^&*\.]{7,18}$
^(?:\d{7,18}|[a-zA-Z]{7,18}|[!@#$%^&*\.]{7,18})$
6:IP地址
^((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))$
7:邮箱 Email
^[\\w-]+@[\\w-]+(\\.[\\w-]+)+$
8:文件夹匹配不包含违规字符且不为空
^[^\/:*?"<>|]+$
1:货币 (金额更改:{0,2})
^(([1-9][0-9]{0,2}(,\d{3})*)|0)(\.\d{1,2})?$
2:日期时间格式 2月平润,大小月 (YYYY-MM-DD) (YYYY-MM-DD hh:mm:ss) (hh:mm:ss)
^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))$
^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s((([0-1][0-9])|(2?[0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$
^((([0-1][0-9])|(2?[0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9]))))$
9:数字匹配
/^-?(0|[1-9]\d*)\.?\d*%?$/
正则表达式书写符号
基本书写符号
符号 | 含义 | 示例 | 解释 | 匹配输入 |
---|
\ | 转义符 | \* | 符号“*” | * |
[ ] | 可接收的字符列表 | [efgh] | e、f、g、h中的任意1个字符 | e、f、g、h |
[^ ] | 不接收的字符列表 | [^abc] | 除a、b、c之外的任意1个字符,包括数字和特殊符号 | m、q、5、* |
| | 匹配“|”之前或之后的表达式 | ab|cd | ab或者cd | ab、cd |
( ) | 将子表达式分组 | (abc) | 将字符串abc作为一组 | abc |
- | 连字符 | A-Z | 任意单个大写字母 | 大写字母 |
限定符
符号 | 含义 | 示例 | 解释 | 匹配输入 | 不匹配输入 |
---|
* | 指定字符重复0次或n次 | (abc)* | 仅包含任意个abc的字符串,等效于\w* | abc、abcabcabc | a、abca |
+ | 指定字符重复1次或n次 | m+(abc)* | 以至少1个m开头,后接任意个abc的字符串 | m、mabc、mabcabc | ma、abc |
? | 指定字符重复0次或1次 | m+abc? | 以至少1个m开头,后接ab或abc的字符串 | mab、mabc、mmmab、mmabc | ab、abc、mabcc |
{n} | 只能输入n个字符 | [abcd]{3} | 由abcd中字母组成的任意长度为3的字符串 | abc、dbc、adc | a、aa、dcbd |
{n,} | 指定至少 n 个匹配 | [abcd]{3,} | 由abcd中字母组成的任意长度不小于3的字符串 | aab、dbc、aaabdc | a、cd、bb |
{n,m} | 指定至少 n 个但不多于 m 个匹配 | [abcd]{3,5} | 由abcd中字母组成的任意长度不小于3,不大于5的字符串 | abc、abcd、aaaaa、bcdab | ab、ababab、a |
^ | 指定起始字符 | ^[0-9]+[a-z]* | 以至少1个数字开头,后接任意个小写字母的字符串 | 123、6aa、555edf | abc、aaa、a33 |
$ | 指定结束字符 | ^[0-9]-[a-z]+$ | 以1个数字开头后接连字符“–”,并以至少1个小写字母结尾的字符串 | 2-a、3-ddd、5-efg | 33a、8-、7-Ab |
匹配字符集
符号 | 含义 | 示例 | 解释 | 匹配输入 | 不匹配输入 |
---|
. | 匹配除 \n 以外的任何字符 | a…b | 以a开头,b结尾,中间包括2个任意字符的长度为4的字符串 | aaab、aefb、a35b、a#*b | ab、aaaa、a347b |
\d | 匹配单个数字字符,相当于[0-9] | \d{3}(\d)? | 包含3个或4个数字的字符串 | 123、9876 | 12、01023 |
\D | 匹配单个非数字字符,相当于[^0-9] | \D(\d)* | 以单个非数字字符开头,后接任意个数字字符串 | a、A342 | aa、AA78、1234 |
\w | 匹配单个数字、大小写字母字符,相当于[0-9a-zA-Z] | \d{3}\w{4} | 以3个数字字符开头的长度为7的数字字母字符串 | 234abcd、12345Pe | 58a、Ra46 |
\W | 匹配单个非数字、大小写字母字符,相当于[^0-9a-zA-Z] | \W+\d{2} | 以至少1个非数字字母字符开头,2个数字字符结尾的字符串 | #29、#?@10 | 23、#?@100 |
分组构造形式
分组构造 | 说明 |
---|
( ) | 非命名捕获。捕获匹配的子字符串(或非捕获组)。编号为零的第一个捕获是由整个正则表达式模式匹配的文本,其它捕获结果则根据左括号的顺序从1开始自动编号。 |
(?) | 命名捕获。将匹配的子字符串捕获到一个组名称或编号名称中。用于name的字符串不能包含任何标点符号,并且不能以数字开头。可以使用单引号替代尖括号,例如 (?‘name’) |