正则表达式

Java 实现正则表达式

概念:

用来描述或者匹配一系列符合某个语句规则的字符串

单个符号:

1、英文句点.符号:匹配单个任意字符。

表达式t.o 可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等。
2、中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。

表达式:t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。
3、| 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。

表达式:t(a|b|c|dd)n 只可以匹配:tan,tbn,tcn,tddn。不可以匹配taan,tn,tabcn等。
4、符号:表示否,如果用在方括号内,表示不想匹配的字符。

表达式:[^x] 第一个字符不能是x
5、\S符号:非空字符
6、\s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。
7、\r符号:空格符,与\n、\tab相同

快捷符号

1、\d表示[0—9]
2、\D表示[^0—9]
3、\w表示[0—9A—Z_a—z]
4、\W表示[^0—9A—Z_a—z]
5、\s表示[\t\n\r\f]
6、\S表示[^\t\n\r\f]

Java中的应用

1.判断作用:
public boolean matches(String regex)

String regex = "1[49]\\d{9}";//判断是否是14或者19开头的手机号。{9}字符串为10位(不包括1)
boolean flag = s.matches(regex);//执行判断功能

2 分割作用:

splitDemo("erkktyqqquizzzzo","(.)\\1+");//按照叠词切割,输出不为叠词的字符
public static void splitDemo(String str,String reg)
	{
		//String reg=" +";//按照多个空格来进行切割
		String[] arr=str.split(reg);//以正则表达式的规则来切割
		System.out.println(arr.length);
		for(String s:arr)
		{
			System.out.println(s);
		}
	}

结果:

4
er
ty
ui
o

3 替换作用:

String str="wqe525235325gf5367676dfg142142424";//将字符串中的数组替换成#
 
replaceAllDemo(str,"\\d{5,}","#");//把超过连续5个或以上的数字替换为#号

String str1="efjjhhhhhwqqqiiiiiiiiio";//将叠词替换成单个字母。hhhh——>h
replaceAllDemo(str1,"(.)\\1+","$1");//任意一个字符,它的下一个字符或多个重复,则将叠词换为单个字符
	}

结果:

wqe#gf#dfg#
efjhwqio
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值