java使用正则表达式从一长串字符中获取一段特征字符串

版权声明: https://blog.csdn.net/shoneworn/article/details/83859143

只能说String工具类太强大,导致一直以来,几乎没怎么用到过正则表达式,现在突然要用到,参考正则表达式语法,摸索一上午才搞出来。记录分享一下,以免忘记

从一长串字符中,截取出邀请码,我想很多人都遇到过。

		String s = "邀请您加入随心购,自动搜索淘宝天猫优惠券!先领券,再购物,更划算!\r\n" + 
				"-------------\r\n" + 
				"下载链接:https://dwz.cn/YMZudYNQ\r\n" + 
				"-------------\r\n" + 
				"复制这条∞信息∞4573586∞\r\n" + 
				"打开随心购,注册领取优惠券";
		
		Pattern pa = Pattern.compile("(?<=∞)([A-Za-z0-9]{7})+(?=∞)");
		Matcher ma = pa.matcher(s);
		while (ma.find()) {
		  System.out.println(ma.group(0));
		}

特征为∞4573586∞  两个∞ 符号之间的字符是不固定的,可以是任意数字和大小写字母。

另外,如果是强制匹配完整的特征,比如,就必须要以∞开头和以∞结尾,中间7个任意字符。则又可以用

		String str= "∞4573586∞";
		System.out.println(str.matches("^∞+.{7}∞$"));

^ 以什么开头

$以什么结尾

. 任意非转义字符

猜你喜欢

转载自blog.csdn.net/shoneworn/article/details/83859143