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

Replace a million different regex of a string

我正在对字符串进行一百万种不同的正则表达式替换。因此,我决定将所有字符串正则表达式和字符串替换保存在 file.txt 中。我试着逐行读取文件并替换它,但它不起作用。

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

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

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

result = user_input.replaceAll(regex, replace);

相反,尝试:

String result = user_input;

循环外和

result = result.replaceAll(regex, replace);