最近在写一个小程序,就是一个简单的文本编辑程序,其中遇到了一些疑点,请求各位赐教,多谢了先~~先看一断文本示例: 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应该怎样才能实现?
我知道可以正则表达式,但是我只会用正则表达式选出要替换的内容,具体怎么替换这个过程不太清楚,请大家帮帮忙,最好给我段详细的代码参考一下!
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应该怎样才能实现?
我知道可以正则表达式,但是我只会用正则表达式选出要替换的内容,具体怎么替换这个过程不太清楚,请大家帮帮忙,最好给我段详细的代码参考一下!
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