最近在写一个小程序,就是一个简单的文本编辑程序,其中遇到了一些疑点,请求各位赐教,多谢了先~~先看一断文本示例:  TRACK 01 AUDIO
    TITLE "Last Rites / Loved To Deth"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Killing Is My Business ...And Business Is Good!"
    INDEX 01 04:41:47
  TRACK 03 AUDIO
    TITLE "The Skull Beneath The Skin"
    INDEX 01 07:49:15
问题1:
我想用自定的字符串来替换掉 TITLE 字段后那对双引号里的内容
我编辑一个新的文本,里面每行写一个准备拿来替换用的字符串,如:aaaa
bbbb
cccc替换完后的新的文本如下:  TRACK 01 AUDIO
    TITLE "aaaa"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "bbbb"
    INDEX 01 04:41:47
  TRACK 03 AUDIO
    TITLE "cccc"
    INDEX 01 07:49:15应该怎样才能实现?
我知道可以正则表达式,但是我只会用正则表达式选出要替换的内容,具体怎么替换这个过程不太清楚,请大家帮帮忙,最好给我段详细的代码参考一下!

解决方案 »

  1.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class regTest {
    public static void main(String[] args){
    String str="TRACK 01 AUDIO \r\n" +
    "TITLE \"Last Rites / Loved To Deth\"\r\n" +
    "INDEX 01 00:00:00 \r\n" +
    "TRACK 02 AUDIO \r\n" +
    "TITLE \"Killing Is My Business ...And Business Is Good!\" \r\n" +
    "INDEX 01 04:41:47 TRACK 03 AUDIO \r\n" +
    "TITLE \"The Skull Beneath The Skin\" \r\n" +
    "INDEX 01 07:49:15 \r\n";
    String regex="(?<=TITLE\\s\").*?(?=\")";
    Pattern p=Pattern.compile(regex);
    Matcher m=p.matcher(str);
    String[] newStr="aaaa bbbb cccc".split(" ");
    int i=0;
    while(m.find()){
    str=str.replace(m.group(), newStr[i]);
    i++;
    }
    System.out.println(str);
    }
    }
    测试结果:
    TRACK 01 AUDIO 
    TITLE "aaaa"
    INDEX 01 00:00:00 
    TRACK 02 AUDIO 
    TITLE "bbbb" 
    INDEX 01 04:41:47 TRACK 03 AUDIO 
    TITLE "cccc" 
    INDEX 01 07:49:15