将指定字符串中以M开头以N结尾的子串截取出来
这个正则表达式怎么写

解决方案 »

  1.   


      public static void main(String[] args) {
      String[] strs = {"mn","mon","mea","moon","meeeeen","cmon","mona"};
      Pattern pattern = Pattern.compile("^m[a-zA-Z]*n$");
      for(String str : strs) {
      Matcher m = pattern.matcher(str);
      System.out.println(m.find());
      }
      }
      

  2.   

    上面的正则不能批评汉字还有一些标点等,下面是非空格的字符都可以。   public static void main(String[] args) {
      String[] strs = {"mn","mon","mea","moon","meeeeen","cmon","mona","m n","m好好好n"};
      Pattern pattern = Pattern.compile("^m[^ ]*n$");
      for(String str : strs) {
      Matcher m = pattern.matcher(str);
      System.out.println(m.find());
      }
      }
      

  3.   

    public static void main(String[] args) {
    String input = "ihaomdkinkkmkkkiihiinkkoh" ;
    String regex = "(m[^n]*n)" ;
    Pattern pattern = Pattern.compile(regex);
    Matcher m = pattern.matcher(input) ;
    while(m.find()){
    System.out.println(m.group(1));
    }
    }输出结果是:
    mdkin
    mkkkiihiin