JAVA正则表达式匹配基础

 

正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作

 

正则表达式的用途;

字符串的匹配

字符串的分割

字符串的查找

字符串的替换

 

 

 

正则表达式的验证语法

   

  [a]    //[]表示这个字符只出现一次  ,[a] 表示a只出现一次
 [ abc ] 表示出现a或b或c只出现一次
 [^abc]   任何字符,除了 a、b 或 c
 [a-zA-Z]  a 到 z 或 A 到 Z,两头的字母包括在内(范围) 
 [a-d[m-p]]  a 到 d 或 m 到 p:[a-dm-p](并集) 
 [a-z&&[def]]  d、e 或 f(交集) 
 [a-z&&[^bc]]  a 到 z,除了 b 和 c:[ad-z](减去) 
 [a-z&&[^m-p]]  a 到 z,而非 m 到 p:[a-lq-z](减去)

 

 

 
验证字母是否为小写

Pattern pattern = Pattern.compile("a-z");
 Matcher matcher = pattern.matcher("s");
 matcher.matches();
条件成立为true

 

预定义字符类 
 

.   任何字符(与行结束符可能匹配也可能不匹配) 
\d  数字:[0-9] 
\D  非数字: [^0-9] 

\w   [a-zA-Z0-9]

\W   表示^\w以外的

 ^   非
 
验证字母是为任意字符+bc

Pattern pattern = Pattern.compile(".bc");
Matcher matcher = pattern.matcher("[abs?1]bc");
matcher.matches();
条件成立为true

 

 

数量词;

n?  一次或一次也没有

n*  0次或多次

n+  一次或多次

N{5} 出现五次

n{5,}  出现五次以上

n{5,10}  出现5到10次

 

  

   

验证字符串

Pattern pattern = Pattern.compile( "JA[V]*A" );
Matcher matcher = pattern.matcher( "JAA" );
matcher.matches();
条件成立为true

   

我的作业:

 

1,匹配邮箱地址:  [email protected]     admin@163.com.cn

1),字母开头

2),字母,数字,下划线特殊符号组成

String str = "[email protected]";
		String ragexDemo = "[a-zA-Z]([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)*"
				+ "@([a-zA-Z0-9]+).[a-zA-Z]{3}.?[a-zA-Z]{0,2}";
		boolean b = str.matches(ragexDemo);
		System.out.println(b);

 

  

 2.验证ip地址是否合法

匹配ip地址在0.0.0.0~~~~~~~~~255.255.255.254之间的

 //要匹配的字符
 String str = "0.0.155.254";
 //匹配规则
 String ragexDemo ="[12]?[0-9]?[0-5].[12]?[0-9]?[0-5].
			+""+[12]?[0-9]?[0-5].[12]?[0-9]?[0-4]";
boolean b = str.matches(ragexDemo);
System.out.println(b);

 

 

 

    

你可能感兴趣的:(java,正则表达式的匹配)