java连续多位相同字符判断的正则表达式
博客专区 > Yohance 的博客 > 博客详情
java连续多位相同字符判断的正则表达式
Yohance 发表于4年前
java连续多位相同字符判断的正则表达式
  • 发表于 4年前
  • 阅读 4119
  • 收藏 6
  • 点赞 1
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

1. ([0-9])\1{5} 或 ([\d])\1{5} 连续相同的6位数字 如:333333

([0-9a-zA-Z])\1{5}   连续相同的6位数字或字母 如:222222 cccccc ZZZZZZ
([\d])\1{2}([a-z])\2{2} 连续相同3位数字后根连续相同的三位小写字母 如:222www
([\d])\1{2}([a-z])\2{2}|([a-z])\3{2}([\d])\4{2} 同上,但是能匹配数字+字母或字母+数字 如:222www 或 www222
这么多的例子自己可以扩展,要注意的就是 \1 \2代表位置,从左到右递增

import java.util.regex.*;

public class demo {
    public static void main (String[] args) {
    Pattern pattern = Pattern.compile("([\\d])\\1{5}");
        Matcher matcher = pattern.matcher("666666");
   System.out.println(matcher.matches()); //true
    }
}

2.判断字符串是否是连续字母或者是连续的数字可以用截取字符串然后比较ascii码的值判断连续的次数

public static void main(String[] args) {
    	 String str = "ab1234567ab";
    	 boolean ll = hasLH(str, 5);
    	 System.out.println(ll);
        
    }
    
	private static boolean hasLH(String str,int count) {
		int pre = 0;
		int len = 1;
		for (int i = 0; i < str.length(); i++) {
			String s = str.substring(i, i + 1);
			char c = s.charAt(0);
			if (i == 0) {
				pre = c;
			}
			if (c - 1 == pre) {
				len++;
				if(len>=count){
					return true;
				}
			}else {
				len = 1;
			}
			pre = c;
		}
		return false;
	}


标签: java 正则表达式
共有 人打赏支持
粉丝 15
博文 80
码字总数 44971
×
Yohance
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: