日期:2014-05-20  浏览次数:20691 次

java正则表达式的问题


------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

啥意思?问题是? 想要的结果是? 

如果是问为什么不能正确匹配那估计就是正则没写对,如果是问正则式就把问题写清楚





正则规则:查询含有abab样式的数字。如1212,1231212.4561212789
我的写的正则表达式:(\d)*(?!\1)(\d)\1\2
我在网上在线测试查询到了想要的结果

 在java中、我是这样写的
(\\d)*(?!\1)(\\d)\1\2
却查询不到想要的结果
 我的意思是在java中应该怎么写



String strTest = "1231212.4561212789";
         String regex = "[\\d]1212[\\d]";
         Pattern p1 = Pattern.compile(regex);
         Matcher m1 = p1.matcher(strTest);
         
         if(m1.find()) {
         System.out.println("匹配成功");
             
         }else {
             System.out.println("未匹配成功");
         }

不是1212,是所有这种格式的数字都要匹配。abab类型的数字、a是第一个数字b是第二个数字


哦,这样啊,那你试试这个:
String strTest = "123434234678";

         String regex = "((\\d)(?!\\2)(\\d))\\1";
        
         Pattern p1 = Pattern.compile(regex);
         Matcher m1 = p1.matcher(strTest);
         
         if(m1.find()) {
         System.out.println("匹配成功");
             
         }else {
             System.out.println("未匹配成功");
         }

------解决方案--------------------
引用:
1212的话可以查出来
123331212这样就不行了


刚测了下,123331212可以查出来