java:
一个字符:
. :一个任意字符
d :一个数字
s :一个空白字符
w :一个单词字符 (a-zA-Z0-9)
字符长度
{n,m} :至少n次,但是不超过m次 {n} :恰好n次 {n, } : 至少n次 X? X :一次或一次也没有 X* X :零次或多次 X+ X :一次或多次 [a-z] :一个小写字母 [a-zA-Z] :一个小写或者大写的字母 [^0-9] :除了0-9以外
[a-d[m-p]] :a-d或者m-p [a-dm-p]并集
[a-z && [def]] :d , e , f 交集
js:
^ 以这个为开始
$ 以这个为结束
/[abcd]/ 某一位是a或b或c或d /abcd/ 连续四位是abcd /[ab][cd]/ 前一位a或b, 后一位c或d /[a-zA-Z]/ a-z或者A-Z /[d]/ 匹配数字 /[D]/ 匹配非数字 /[w]/ 匹配数字,字母,下划线 /./ 匹配任意字符 /./ 匹配点(.) /[d][d][d]/ 连续三个数字 /[d]{3,7}/ 3-7位数字 /[d]?/ 0位或1次 /[d]*/ 0位或多次 /[d]+/ 1位或多次
例:
/^[w]{4,16}$/ 英文字母,数字或者下划线,长度为4-16个字符 /^[a-zA-Z0-9]{6,16}$/ 6-16个字母或数字组成 /^[d]{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([12][d])|(3[01]))$/ 日期格式:yyyy-mm-dd /w+@163.com$/ 简单的163邮箱 *****@163.com
字符串与正则用Matches比较:一个字符串是否符合0位或多位数字的正则
public class Matches { public static void main(String[] args) { String str = "034234"; if(str.matches("[0-9]\d*")) { //判断0或多个数字的正则 System.out.println("符合正则表达式"); }else { System.out.println("不符合正则表达式"); } } }