Java的正则表达式

1.      正则表达式

正则表达式是一种特殊的字符串,一个正则表达式定义了一种字符串格式,例如可以用一个字符串定义常见手机号的格式:常见手机号是以13、15或18开头的11位数字字符串.

1.1 正则表达式元字符的写法及含义

见下表

 

例如

 

		String regex = "\\d\\p{Upper}\\p{Alnum}";%0-9 大写 数字或字母
		Scanner scanner = new Scanner(System.in);
		while(true){
			String s = scanner.next();
			if(s.matches(regex))
				System.out.println("匹配");
			else
				System.out.println("不匹配");
		}
输入及输出结果如下

1Aa
匹配
1A2
匹配
1A#
不匹配


1.2正则表达式中方括号[]的使用

方括号的含义如下表

 

例如

 

		String regex = "[b-d]";
		Scanner scanner = new Scanner(System.in);
		while(true){
			String s = scanner.next();
			if(s.matches(regex))
				System.out.println("匹配");
			else
				System.out.println("不匹配");
		}
输入及输出结果如下

a
不匹配
b
匹配
c
匹配
e
不匹配

 

1.3限定修饰符的用法

限定修饰符的用法如下表

 

例如

		String regex = "[b-d]{1,3}";
		Scanner scanner = new Scanner(System.in);
		while(true){
			String s = scanner.next();
			if(s.matches(regex))
				System.out.println("匹配");
			else
				System.out.println("不匹配");
		}
输入及输出结果如下

c
匹配
ca
不匹配
cb
匹配
cbd
匹配
cbbd
不匹配

 

2.      字符串的替换

字符串替换使用String类的方法s.replaceAll(String regex,String replacement).将字符串s中的所有的与regex相匹配的部分替换为replacement,regex可以为普通字符串或者正则表达式.

例如

		String s = new String("J.av.a大%法%好!!");
		String regex = "\\p{Punct}";//标点符号
		System.out.println(s);
		System.out.println(s.replaceAll(regex, ""));//去掉所有表达点
运行结果如下
J.av.a大%法%好!!
Java大法好

 

3.      字符串的拆分

使用s.split(String regex)方法可以regex作为分隔符将s分割成几个部分.

例如

		String s = new String("在1840年以前的一年,1月20日是个好日子");
		String []word = s.split("\\D+");//这里需要一个 + 号,提取数字的方法
		for(String w:word)
			System.out.print(w+" ");
		System.out.println();
运行结果如下
 1840 1 20 

转载于:https://www.cnblogs.com/tensory/p/6590774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值