我正在做一百万个不同的正则表达式替换字符串。因此,我决定在file.txt中保存所有String正则表达式和字符串替换。我尝试逐行读取文件并替换它,但它无法正常工作。
replace_regex_file.txt
aaa zzz
^cc eee
ww$ sss
...
...
...
...
a million data
编码
String user_input = "assume 100,000 words"; // input from user
String regex_file = "replace_regex_file.txt";
String result="";
String line;
try (BufferedReader reader = new BufferedReader(new FileReader(regex_file)) {
while ((line = reader.readLine()) != null) { // while line not equal null
String[] parts = line.split("\\s+", 2); //split process
if (parts.length >=2) {
String regex = parts[0]; // String regex stored in first array
String replace = parts[1]; // String replacement stored in second array
result = user_input.replaceAll(regex, replace); // replace processing
}
}
} System.out.println(result); // show the result
但它并没有取代任何东西。我该如何解决这个问题?
答案 0 :(得分:0)
您当前的代码仅应用最后匹配的正则表达式,因为您没有将替换的结果分配回输入字符串:
result = user_input.replaceAll(regex, replace);
相反,请尝试:
String result = user_input;
在循环之外和
result = result.replaceAll(regex, replace);