替换一百万字符串的不同正则表达式

时间:2016-07-25 09:18:47

标签: java regex replaceall

我正在做一百万个不同的正则表达式替换字符串。因此,我决定在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

但它并没有取代任何东西。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您当前的代码仅应用最后匹配的正则表达式,因为您没有将替换的结果分配回输入字符串:

result = user_input.replaceAll(regex, replace);

相反,请尝试:

String result = user_input;

在循环之外和

result = result.replaceAll(regex, replace);