016Java正则表达式

1.基本正则表达式

正则表达式:正则表达式就是指,使用一些预先定义的特殊字符用来描述一个字符串的格式规则。可以使用格式规则用来匹配某个字符串是否符合格式要求

1.1"."和"\"

     ".":在正则表达式中表示任意一个字符

     "\"是正则表达式中的转义字符,用来把正则表达式中正在使用的特殊字符转换为字符原本意思。

     在"\"中有一些已经预定的特殊内容

     "\d":表示任意一个数字

     "\w":表示任意一个单词字符

     "\s"表示任意一个空白字符(\t \r \n \f \x0B)

     "\D"表示非任意一个数字

     "\W"表示非任意一个单词字符

     "\S"表示表示非空白字符

1.2[ ]表示单一字符,括号内定义字符的内容,也可以表示一段范围。

如:[0-9]值0-9中数字中的任意一个

       [a-z]指a-z中的任意一个字母

       [0123]指0、1、2、3中数字中的任意一个

1.3"*"、"+"、"?"

    "*":表示内容可以出现0-多次

    "+":表示内容可以出现1-多次

    "?":表示内容可以出现0次或1次

    如"\w+"表示至少出现一个单词字符

1.4{n}、{n,}、{n,m}

     {n}:表示内容出现了你次

     {n,}:表示内容至少出现了n次

     {n,m}:表示内容出现了n到m次

     如:"\d{11}"表示只能出现11次数字,可表示一个电话号码

1.5分组

     分组可以使用()来将内容看成一个整体,其中以  |   来表示或的关系

     如:(+86|0086)用来表示+86或0086

1.6 "^"和"$"

      "^"用来表示正则表达式的开头,"$"用来表示正则表达式的末尾,如不是一起开始和结束,只能用来表示字符串的部分内容是否满足。

      如:"\w{10}"表示字符串中只能出现10个单词字符

2、String正则相关API

2.1 matches方法,用来表示正则表达式描述的字符串规则是否匹配字符串

      如下代码

         /**
	 * 测试email是否合法,使用matches方法
	 */
	@Test
	public void email(){
		String emailRegEx=
				"^[a-zA-z0-9_\\.-]+@([a-zA-z0-9-]+\\.)"
				+ "+[a-zA-Z0-9]{2,4}$";
		String email="bjliyi@tarena.com.cn";
		System.out.println(email.matches(emailRegEx));
		//输出结果为:true
	}

2.2split方法,用来正则表达式描述的字符串规则来匹配字符串,把满足字符串的进行拆分,形成字符串数组

     如下代码

         /**
	 * 使用split方法拆分字符串
	 */
	@Test
	public void testSpilt(){
		//使用空格进行拆分
		String str="java cpp php c# objective-c";
		String[]strArr=str.split("\\s");
		System.out.println(Arrays.toString(strArr));
		//输出结果:[java, cpp, php, c#, objective-c]
		//使用+、-、=进行拆分
		String line="100+200-150=150";
		strArr=line.split("(\\+|\\-|=)");
		//strArr=line.split("[\\+\\-=]");
		//System.out.println(strArr.length);
		System.out.println(Arrays.toString(strArr));
		//输出结果[100, 200, 150, 150]
		
	}

2.3replaceAll:用来正则表达式表示的字符串规则来匹配字符串,并把匹配成功的替换成正则表达式后面的字符串

    如下代码:

         /**
	 * 使用replaceAll实现字符串的替换
	 */
	@Test
	public void testReplaceAll(){
		//将所有的数字替换为数字二字
		String str="abc123bcd45ef6g7890";
	    str=str.replaceAll("\\d+","数字");
	    System.out.println(str);
	    //输出结果:abc数字bcd数字ef数字g数字
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值