import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* ****************** 类说明 *********************
* class : RegTest
* @author : ncc
* create time : 2017-12-6 下午07:26:48
* @version : 1.0
* description : 正则表达式
* @see :
* ************************************************/
public class RegTest {
/**常用符号
. 表示任意一个字符
\s 空格字符(空格键, tab, 换行, 换页, 回车)
\S 非空格字符([^\s])
\d 一个数字,(相当于[0-9] )
\D 一个非数字的字符,(相当于[^0-9] )
\w 一个单词字符(word character) (相当于 [a-zA-Z_0-9] )
\W 一个非单词的字符,[^\w]
^ 一行的开始
$ 一行的结尾
\b 一个单词的边界
\B 一个非单词的边界
\G 前一个匹配的结束
[] 匹配方括号内的一个字符
例如:[abc] 表示字符 a,b,c 中的任意一个(与 a|b|c 相同)
[a-zA-Z] 表示从 a 到 z 或 A 到 Z 当中的任意一个字符
[a-z] 表示从 a 到 z当中的任意一个字符
[A-Z] A 到 Z 当中的任意一个字符
[\u4e00-\u9fa5] 表示中文
[^\u4e00-\u9fa5] 表示非中文
[^\\x00-\\xff] 表示双字节字符
[\\x00-\\xff] 表示单字节字符
*/
/**表示次数的符号
* 重复零次或更多次
例如:a* 匹配零个或者多个 a
+ 重复一次或更多次
例如:a+ 匹配一个或者多个 a
? 重复零次或一次
例如:a? 匹配零个或一个 a
{n} 重复 n 次
例如:a{4} 匹配 4 个 a
{n,} 重复 n 次或更多次
例如:a{4,} 匹配至少 4 个 a
{n,m} 重复 n 到 m 次
例如:a{4,10} 匹配 4~10 个 a
*/
public static void main(String[] args) {
// 校验邮箱
Pattern pattern = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
Matcher matcher = pattern.matcher("user@test.com");
System.out.println(matcher.matches());
// 校验身份证号
System.out.println("13569819760238115x".matches("^(\\d{18,18}|\\d{15,15}|\\d{17,17}[x|X])$"));
// 校验非中文( 0-128位)
System.out.println("aA123!@#$%^&*".matches("[^\u4e00-\u9fa5]{0,128}"));
// 匹配双字节字符(包括汉字在内):[^\\x00-\\xff]
System.out.println("哈哈哈哈".matches("[^\\x00-\\xff]*"));
// 匹配单字节字符(包括汉字在内):[^\x00-\xff]
System.out.println("aA123!@#$%^&*".matches("[\\x00-\\xff]*"));
// 匹配网址
System.out.println("http://decao.iteye.com/".matches("[a-zA-z]+://[^\\s]*"));
}