RT。。请问用正则表达式的话,怎么截取以某关键字开头的指定长度的字符串啊?比如我要从str中截取以$MOD开头,长度为70的字符串,表达式应该怎么写?还有就是假如我要截取以$MOD开头,以某特定关键字结尾(比如换行符号)的字符串,又要怎么表达呢?请高手指点,感激不尽。。

解决方案 »

  1.   

    指定长度:
    {7}自己改成想要的长度 String s="aaaaa$MOD123456789";
    Matcher m=Pattern.compile("\\$MOD.{7}").matcher(s);
    while(m.find()){
    System.out.println(m.group());
    }
      

  2.   

    固定结尾 String s="aaaaa$MOD12345678\n9";
    Matcher m=Pattern.compile("(\\$MOD.*?)\n").matcher(s);
    while(m.find()){
    System.out.println(m.group(1));
    }
      

  3.   


    String str="从str中截取以$MOD开头,长度为70的字符串ds;fjsaljfslfjsal;fjals;fjlskfjsa;fskfjdasl;kfjsfjsal;fjslkfjsal;fksafjklsafjsdldflsafjklsafj";
    String regExp = "\\$MOD.{66}";
    Matcher m=Pattern.compile(regExp).matcher(str);
    if (m.find()) System.out.println(m.group(0));
      

  4.   

    这有必要用正则表达式么?用 String#indexOf 和 String#substring 就足够了,而且效率也高。
      

  5.   

    http://blog.csdn.net/closewbq/archive/2010/06/30/5704158.aspx
    这里有很多可以学习~
      

  6.   

    我昨天刚看的正则表达式,lz去看看吧,讲的挺好的,百度上找的,呵呵
    http://deerchao.net/tutorials/regex/regex.htm