正则表达式案例(JAVA)

前言

这一章节,我想列举一些平时看到的比较有意思的可以使用正则表达式的案例。还是比较有趣,特此记录。

案例

简化结巴话

说话结巴的人,会将一个字说多次,但是其意思就只有一次,这里模拟简化结巴话,如下。
原话:今天…的…的…的太阳真…真是太大…大…大了!
目标:今天的太阳真是太大了!

	String s ="今天...的...的..的太阳真..真是太大...大..大了!";
	// 去掉.字符
	String newStr = s.replaceAll("\\.+", "");
	System.out.println(newStr);
	// 去除重复字符
	String regEx = "(.)\\1+";// 此处好像不能加定位符^ $,加了反而不起作用
	// 方式一
	String str1 = Pattern.compile(regEx).matcher(newStr).replaceAll("$1");
	System.out.println(str1);
	// 方式二
	String str2 = newStr.replaceAll(regEx, "$1");
	System.out.println(str2);

多条件分割字符串

分割字符串还是比较常见的功能,但一般都是通过固定字符,比如:- . 等字符。Java字符串提供正则表达式分割,以前没怎么使用,此处记录一下。将字符串按照 # 和 - 和 . 和 数字进行分割。数字个数不确定。

	String s = "哦.你.好我的#老朋友123好久没-有见到你了";
	String[] arr = s.split("#|-|\\.|\\d+");
	for (int i = 0; i < arr.length; i++) {
		System.out.println(arr[i]);
	}

判断是否为整数或小数

要求验证是否为整数或小数,提示:这个题要考虑整数和负数
比如:123 -345 67.89 -9.8 0.1等

	String s = "-25.9";
	if(s.matches("^[-]?([1-9]\\d*|0)(\\.\\d)?$")){
		System.out.println("匹配成功");
	}else{
		System.out.println("匹配失败");
	}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值