Java удалить подстроку, которая включает в себя кавычки - PullRequest
1 голос
/ 11 июля 2011
    String strLine = "";

    try
    {
        BufferedReader b = new BufferedReader(new FileReader("html.txt"));
        strLine = b.readLine();
    } catch(Exception e)
    {
        e.printStackTrace();
    }   

    String[] temp = strLine.split("<");
    temp = temp[1].split(">");
    String temp1 = ("<"+temp[0]+">");

    strLine = strLine.replaceFirst(temp1,"");
    System.out.println(strLine);

В основном я хочу удалить эту строку

<span title="Representation in the International Phonetic Alphabet (IPA)" class="IPA"> 

из файла, который содержит

<span title="Representation in the International Phonetic Alphabet (IPA)" class="IPA">no'b?l</span> 

Однако пока мой код работает, только если строка не содержит кавычек. Как я могу решить эту проблему. Я пытался использовать

.replaceAll("\\\"","\\\\\""); 

но все равно не удалось.

Любая помощь или информация будут высоко оценены.

Ответы [ 2 ]

0 голосов
/ 11 июля 2011

Ваша проблема в том, что replaceFirst принимает регулярное выражение, но вы передаете ему произвольную строку, которая может содержать все виды специальных символов, которые имеют определенное значение в регулярном выражении. Я не думаю, что кавычки - это ваша проблема, а вопросительный знак в скобках.

Одним из способов решения этой проблемы является использование метода String # replace , который принимает строку, а не регулярное выражение. То есть используйте следующую строку:

strLine = strLine.replace(temp1,"");

Это отличается от вашего кода тем, что он заменяет все экземпляры temp1 в этой строке, а не только первый, но я думаю, что с вами все будет в порядке.

0 голосов
/ 11 июля 2011

AFAIK replaceAll("///"","/////""); будет работать, если вы сбежали правильно: символ выхода - \, а не /.Попробуйте использовать это вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...