只能说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}∞$"));
^ 以什么开头
$以什么结尾
. 任意非转义字符