2016-07-25 8 views
0

文字列の数百万の異なる正規表現の置き換えを行っています。したがって、私は、すべてのString正規表現とString置換をfile.txtに保存することに決めました。ファイルを行単位で読み込み、置き換えようとしましたが、動作しません。文字列の数百万の異なる正規表現を置き換えます。

replace_regex_file.txt

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 

コーディング

aaa zzz 
^cc eee 
ww$ sss 
... 
... 
... 
... 
a million data 

しかし、それは何かを置き換えるものではありません。これをどうすれば解決できますか?あなたが入力文字列に戻って、交換の結果を割り当てないので

+0

デバッガでプログラムをステップ実行しましたか? – Idos

+0

String [] parts = line.split( "\\ s +"、2);デバッグする必要があります。 ;) – HRgiger

答えて

0

あなたの現在のコードのみが、最後にマッチした正規表現を適用します。その代わり

result = user_input.replaceAll(regex, replace); 

、試してみてください。

String result = user_input; 

ループ外にあり、

result = result.replaceAll(regex, replace); 
関連する問題