看到一篇关于正则表达式妙用的文摘——《检查素数的正则表达式》,正则玩到了极致(反向引用+非贪婪模式),不错的思路,可以借鉴。原文:http://coolshell.cn/articles/2704.html
java实现了一个demo,仅供研究参考:
public class PatternMatchesPrimeNumber { public static void main1(String[] args) { String regex="^1?$|^(11+?)\\1+$"; StringBuffer sb=new StringBuffer(); for(int i=1;i<1000;i++){ sb.append("1"); if(!sb.toString().matches(regex)){ System.out.println(i); } } } }