看到一篇关于正则表达式妙用的文摘——《检查素数的正则表达式》,正则玩到了极致(反向引用+非贪婪模式),不错的思路,可以借鉴。原文: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);
}
}
}
}