java – 正则表达式在一组数字中查找重复出现的数字集
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 正则表达式在一组数字中查找重复出现的数字集,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2447字,纯文字阅读大概需要4分钟。
内容图文
![java – 正则表达式在一组数字中查找重复出现的数字集](/upload/InfoBanner/zyjiaocheng/781/00a3bebd6c9c4821835dfa8651aa169a.jpg)
给定一组数字,正则表达式可以找到长度为N的数字子集不止一次,最好是在循环变量N上.我目前有一些东西找不到单次出现,但这会返回太多的噪音.我希望它在循环中找到长度为N的集合,将N从大集合减少到小集合.
看似随意的数字序列是转换为数字字符串的字节数组,我想要捕获的集合是XOR编码文件的可能键.
鉴于编码文本足够长,可能存在N个空格与长度为N的密钥相关的时间,其以大致明文再现密钥.我测试了这个,例如:
" " ^ "ThisIsTheKey" produces roughly "tHISiStHEkEY"
当前正则表达式(java引擎):
String regex = "(\\d+)\\1";
Pattern patt = Pattern.compile(regex);
Matcher matcher = patt.matcher(sToDecode);
while (matcher.find())
{
System.out.println("Repeated substring: " + matcher.group(1));
}
鉴于:
737568797372696810068791021116868686873696868657376791001117268681067368686868736865736810169686872687972686568689876796869726874749911010194687265796810111086696511099688368688369868984896876708580849586987885681111109978697865767372737668676968796870797899110101110107736868726569697978736868657394707570661101011101079878991101101026968736879686572100736868766968736879686572100736867681107968657210073686876696873687968657210073686876696873687968101110107981007368687669687368796865721007368687669681006872689968796865721007368687669687368796865721007368687673666910772100736868766968736879686572100736868766810011073687968657210073686876696873687767696868711109911010168657210073686876696873687968657210073686876696873687968657210073681111107368796865721007368687669687368796865721007368687669687299110101686572100736868766968736879686572100681056899687968657210073686876696873687968657210073686876696873687310111010772100736868766968736879686572100736868766968737368102111110736879686572100 …
这将找到以下reoccuring子集:
...
Repeated substring: 736879686572100736868766968
Repeated substring: 1
Repeated substring: 0
Repeated substring: 68
Repeated substring: 6
Repeated substring: 0
Repeated substring: 68
Repeated substring: 686572100736868766968736879
Repeated substring: 1
Repeated substring: 657210073686876696873687968
...
如果可以更改正则表达式,请告诉我它只会返回:
Repeated substring: 736879686572100736868766968
Repeated substring: 686572100736868766968736879
Repeated substring: 657210073686876696873687968
解决方法:
使用将匹配从一个到多个数字,这就是为什么你得到所有这些短子串.如果要在长度上添加约束,只需将其更改为{n,m},其中0 <= n <m(其中一个可以为空). <="" p="" 要获得3个或更多重复数字的组,请使用:="">
(\d{3,})\1
内容总结
以上是互联网集市为您收集整理的java – 正则表达式在一组数字中查找重复出现的数字集全部内容,希望文章能够帮你解决java – 正则表达式在一组数字中查找重复出现的数字集所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。