Java菜鸟笔记:java正则表达式常见用法

早在Java之前正则表达式就已经存在,在Java中它的强大与方便同样被继承下来。正则表达式主要运用于字符串操作,在java中字符串操作主要集中在String、StringBuffer和StringTokenizer类。

  • 基础
    在java中,正则表达式也许是一个很冷门的知识,但是在应用上一点都不冷门,比如说游戏中的“脏话和谐系统”,输入格式的验证等等。一般来说,正则表达式就是以某种方式(规则)来描述字符串。
    如:-? 表示一个数字前面有一个负号(-1,-2 等等)
    \d 表示一位数字
    但是在java中需要注意反斜杠的问题,正则表达式的 \d 在java中应该写成 \d ,因为java中的 \ 才表示一个正则表达式的 “\”。
    而普通的反斜杠应用“\\”来表示…

  • 应用
    了解了概念,我们先说一下正则表达式在java中的使用。
    最常用的是String内建的功能:

“-1234”.matches("-?\\d");    //以-开头的多个数字(+前没有\\表示多个)
//意思是字符串是否符合这个正则表达式

matches()方法传入一个正则表达式,返回boolean类型,指的是调用者是否符合这个正则表达式。

第二个方法的应用就是String 的split方法,其功能是将字符串从正则表达式的地方切开,返回一个String数组。
很多人只知道用它可以切开字符串,并不知道它能传入正则。

  • 常用实例

“\d” == “[0-9]” 一位数字
“\D” == “[^0-9]” 一位非数字
“\s” == “[\t\n]” 空白符(空格、tab、换行、回车)
“\S” == “[^\s]” 非空白符
“\w” == “[a-zA-Z_0-9]” 所有的大小写字母或者下划线、数字
“\W” == “[^\w]” 非词字符

组合使用:
[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+

这个正则表达式表示邮箱的格式:多个字符 + @ + 多个字符 + . + 多个多个字母

//邮箱验证
		String str = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
		String email = "[email protected]";
		if (email.matches(str)) {         //要把正则表达式放在后面
			System.out.println("这是邮箱!");
		}else {
			System.out.println("这不是邮箱!");
		}

//去除字符串中的数字
		String str = "abc123def456ghi789";
		String regex = "[0-9]+";
		str = str.replaceAll(regex,"#NUM#");
		System.out.println(str);// abc#NUM#def#NUM#ghi#NUM#
//同理,可以用此方法去除脏话,净化环境

你可能感兴趣的:(java开发工程师,自学java,java,java,正则表达式,String)