Problema com o snippet abaixo no regex de correspondências de limite (\ b)

Minha entrada:

 1. end 
 2. end of the day or end of the week 
 3. endline
 4. something 
 5. "something" end

Com base nas discussões acima, se eu tentar substituir uma única sequência usando esse trecho, ela removerá as palavras apropriadas da linha com êxito

public class DeleteTest {

    public static void main(String[] args) {

        // TODO Auto-generated method stub
        try {
        File file = new File("C:/Java samples/myfile.txt");
        File temp = File.createTempFile("myfile1", ".txt", file.getParentFile());
        String delete="end";
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp)));

        for (String line; (line = reader.readLine()) != null;) {
            line = line.replaceAll("\\b"+delete+"\\b", "");
       writer.println(line);
        }
        reader.close();
        writer.close();
        }
        catch (Exception e) {
            System.out.println("Something went Wrong");
        }
    }
}

Minha saída Se eu usar o snippet acima: (Também minha saída esperada)

 1.  
 2. of the day or of the week
 3. endline
 4. something
 5. "something"

Mas quando incluo mais palavras para excluir e, para esse propósito, quando uso Set, uso o trecho de código abaixo:

public static void main(String[] args) {

    // TODO Auto-generated method stub
    try {

    File file = new File("C:/Java samples/myfile.txt");
    File temp = File.createTempFile("myfile1", ".txt", file.getParentFile());
    BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp)));

        Set<String> toDelete = new HashSet<>();
        toDelete.add("end");
        toDelete.add("something");

    for (String line; (line = reader.readLine()) != null;) {
        line = line.replaceAll("\\b"+toDelete+"\\b", "");
    writer.println(line);
    }
    reader.close();
    writer.close();
    }
    catch (Exception e) {
        System.out.println("Something went Wrong");
    }
}

Recebo minha saída como: (Ele apenas remove o espaço)

 1. end
 2. endofthedayorendoftheweek
 3. endline
 4. something
 5. "something" end 

Vocês podem me ajudar nisso?

Clique aqui para seguir o tópico

questionAnswers(2)

yourAnswerToTheQuestion