简单的的思路:
(1)掌握基本的正则表达式知识;会了一种,其他语言都是通用的,只是不同语言语法不一样。
(2)掌握基本的《单位元》表示方法,比如1个数字,可以[0-9],可以[\d]。1个字符[a-zA-Z],可以[\w]。另外还有1个空格,1个中文,特殊字符等等。
(3)掌握个数控制(+、*、{1,10}、{1,}等等),就可以根据第(2)点,实现字符限制,(限制需要掌握^、$两个符号)。比如
1、字符要求2到10位 : ^[\w]{2,10}$
2、数字、字符、_、中文的混合限制2到10 : ^[\d\u4E00-\u9FA5\w_]{2,10}$
3、好了,思路先到这里。
下面附上一些常用的正则匹配
/* 任意字符 */
.或者[\s\S]其中\s匹配所有的空格,换行,tab制表符等,而\S表示除了\s外的所有字符,所以两者的结合等价于.
/* 英文单词 */
^\\w+$
/** 中文 */
[\u4E00-\u9FA5]
/** 6到30位 数字 + 字符 + _,常用于用户名注册 */
^[a-zA-Z][a-zA-Z0-9_]{6,29}$
/** 5到20位 数字 + 字符 + _,常用于用户名注册 */
^[a-zA-Z][a-zA-Z0-9_]{5,19}$
/** 数字 + 字符 + _,且必须已字母开头 */
^[a-zA-Z][a-zA-Z0-9_]+$
/** 数字 + 字母 组合 */
^[A-Za-z0-9]+$
/** 字母组合 */
^[A-Za-z]+$
/** 大写字母组合 */
^[A-Z]+$
/** 小写字母组合 */
^[a-z]+$
/** 双字节 */
[^x00-xff]
/** URL地址: 包括 http, ftp 等 */
[a-zA-z]+://[^s]*
/** HTTP URL */
http(s)?://[^s]+
/** Internet URL */
^http(s)?://([\\w-]+.)+[\\w-]+(/[\\w-./?%&=]*)?$
/** HTML 标签 */
<(\\S*?)[^>]*>.*?|<.*? />
/** IP 地址 */
((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]\\d)|(\\d)).((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]\\d)|(\\d)).((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]\\d)|(\\d)).((25[0-5])|(2[0-4]\\d)|(1\\d{2})|([1-9]\\d)|(\\d))
/** Email 地址 */
\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*.\\w+([-.]\\w+)*
/** 中国电话号码 */
0\\d{2,3}-\\d{7,8}
/** 中国移动电话 */
1[3|5|8][0-9]-\\d{8}
/** 中国身份证号 */
public static final String REGEX_IDCARD_CHINA = "\\d{17}[0-9|x|X]|\\d{15}";
/** 中国邮政编码 */
public static final String REGEX_ZIPCODE_CHINA = "\\d{6}";
/** QQ号 */
public static final String REGEX_QQ = "[1-9][0-9]{4,}";
/** 数字 */
public static final String REGEX_CNUMBER = "^[0-9]+$";
/** 正数 */
public static final String REGEX_INT_POSITIVE = "^[1-9]\\d*$";
/** 非正数 */
^-[1-9]\\d*|0$
/** 负数 */
^-[1-9]\\d*$
/** 非负数 */
^[1-9]\\d*|0$
/** 整数 */
^-?[1-9]\\d*$
/** 浮点数 */
^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$
/** 正浮点数 */
^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$
/** 非正浮点数 */
^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$
/** 负浮点数 */
^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$
/** 非负浮点数 */
^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$
/** 空行 */
\n\\s*\r
/** 空字符 */
^\\s*|\\s*$
/**
* 关键字标签正则:仅允许输入中文、英文(含大小写)、数字,输入内容必须以逗号隔开(含中英文逗号),但不能以逗号开头或结尾
* 正确格式示例:99,AB,示例,ss,呵呵
*
^([a-zA-Z0-9\\u4e00-\\u9fa5]+[,|,])*[a-zA-Z0-9\\u4e00-\\u9fa5]+$
/**
* 能输入有1~3位小数的正实数(包含0)
*/
^[0-9]+(\\.[0-9]{1,3})?$