Java正则表达式基础

先看一下正则表达式的一些基本符号及用法:

 .  表示任意一个字符 
 [asd] 表示a或s或d
 [^asd] 除了asd之外的
 [a-z] 所有小写字母
 [A-Z] 所有大写字母
 \d 任意的数字
 \D 非数字
 \w [A~Z a~z 0~9] 大小写字母 数字0~9
 \W 字符
 ========================
 * 0次或多次
+ 1次或多次o
0次或1次
 {n} 恰好是n次

 {n,m} 至少是n次,但不多于m次


接下来看一下以上的符号在Java的代码中的用法及效果

public static void main(String[] args) {
		String str1 = "123ABCDabcd+-*/%";
		String str2 = "abzoozozAB";
		
		System.out.println(str1.replaceAll(".", "x")); //将所有字符替换成x
		System.out.println(str1.replaceAll("[abc]", "x"));//将a,b,c替换成x
		System.out.println(str1.replaceAll("[ABC]", "x"));//将A,B,C替换成x
		System.out.println(str1.replaceAll("[a-d]", "*"));//将a到d之间的小写字母替换成*
		System.out.println(str1.replaceAll("[A-D]", "*"));//将A到D之间的大写字母替换成*
		System.out.println(str1.replaceAll("\\d", "*"));//将所有的数字替换成*
		System.out.println(str1.replaceAll("\\D", "*"));//将所有的非数字字符替换成*
		System.out.println(str1.replaceAll("\\wabc", "*"));//将abc整体替换成*,其中abc处可替换成大写字母或小写字母或数字
		System.out.println(str1.replaceAll("\\W+-", "*"));//将+-整体替换成*,其中+-处可替换成其他字符
		System.out.println("====================");
		System.out.println(str2.replaceAll("zo*", "*"));//匹配zo或多于zo多个字符的zoo,或少于zo字符数的z,并替换成*
		System.out.println(str2.replaceAll("zo+", "*"));//匹配zo或多余zo一个字符的,并替换成*
		System.out.println(str2.replaceAll("zo?", "*"));//匹配于zo相等或少zo的z,进行替换
		System.out.println(str2.replaceAll("zo{1}", "*"));//匹配zo相等的字符,{}中的1,表示可以匹配数组后几位。列:zo{2}将会匹配zoo,最后面两位是相同的
		System.out.println(str2.replaceAll("zo{1,2}", "*"));//和上一个相似,只不过这个可以指定一个范围,匹配后一位,或后两位相同的
	
	}

结果:



阅读更多
文章标签: Java
上一篇Java输出空心菱形
下一篇java包装类基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭