比如 现在有几行数据,其中,有些行数据是这样的:
四川省广安市 四川省成都市。
如何写正则表达式,找出符合“一行数据内,含有两个或者两个以上‘市’字的数据”。
谢谢!

解决方案 »

  1.   

    如果数据之间是用空格隔开的.String regex="([\\u4e00-\\u9fa5]+市\\s+){2,}" 
      

  2.   

    import java.util.regex.*;public class Test{

        public static void main(String args[]) throws Exception {
         //一行内市是挨着的可以:
         String regex="([\\u4e00-\\u9fa5]+市(\\s+)?){2,}";
         String line="如下:四川省广安市 四川省成都市,茜地地地";
         Matcher m=Pattern.compile(regex).matcher(line);
         if(m.find()){
         System.out.println("找到了");
         System.out.println(m.group());
         }
         //如里想找不挨着的可以:
         String regex1="[\\u4e00-\\u9fa5]+?市" ;
         String line1="如下:四川省广安市和四川省成都市,茜地地地";
         Matcher m1=Pattern.compile(regex1).matcher(line1);
         int count=0;
         boolean find=false;
         while(m1.find()){
         count++;
         if(count==2){
         find=true;
         break;
         }
         }
         if(find){
         System.out.println("这样也能找到,呵呵");
         System.out.println(line1);
         }
        }
    }
    F:\java>java Test
    找到了
    四川省广安市 四川省成都市
    这样也能找到,呵呵
    如下:四川省广安市和四川省成都市,茜地地地