一个字符串:
"xxx:aaaxxx:bbb\nxxx:ccc"
我只想匹配每行第一个xxx:,而每行第二次出现的xxx:不匹配
正则表达式如何写呢?谢谢

解决方案 »

  1.   

    没有明白你什么意思,发一个东东,你自己照着做:
    http://edu.yesky.com/edupxpt/18/2143018.shtml
      

  2.   

    参考public class Test63 {
    public static void main(String[] args) {
    String s = "xxx:aaaxxx:bbb\nxxx:ccc";
    System.out.print(s.replaceAll("((?<=\n)|^)xxx", "我被找到了"));
    }
    }
      

  3.   

    String str = "xxx:aaaxxx:bbb\nxxx:ccc";
    Pattern p = Pattern.compile("(xxx:.*?)(xxx:.*)*(\n|$)");
    Matcher m = p.matcher(str);

    while(m.find()){
    System.out.println(m.group(1));
    }
    这样?
      

  4.   

    不是,比如:
    title:aaatitle:bbb
    我想弄成<title>aaatitle:bbb</title>
    而不是<title>aaa</title><title>bbb</title>
    就是只把每行第一个“:”之前的匹配,而且title也可能是别的单词,比如date之类的。
      

  5.   

    千奇百怪....public class Test64 {
    public static void main(String[] args) {
    String s = "title:aaatitle:bbb";
    System.out.print(s.replaceAll("^(.+?):(.+)", "<$1>$2</$1>"));
    }
    }不知道还有啥附加条件..
      

  6.   

    String str = "xxx:aaaxxx:bbb\nxxx:ccc";
    str = str.replaceAll("([^:]+):(.*?)(.*)(\n|$)", "<$1>$2$3</$1>");
    System.out.println(str);
      

  7.   

    String str = "xxx:aaaxxx:bbb\nxxx:ccc";
    str = str.replaceAll("([^:]+):(.*)(\n|$)", "<$1>$2</$1>$3");
    System.out.println(str);
    这样好点.