Java удалить подстроку, которая включает в себя кавычки
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 ответа
Ваша проблема в том, что replaceFirst принимает регулярное выражение, но вы передаете ему произвольную строку, которая может содержать все виды специальных символов, которые имеют определенное значение в регулярном выражении. Я не думаю, что кавычки - это ваша проблема, а вопросительные скобки.
Один из способов обойти это - использовать метод String#replace, который принимает строку, а не регулярное выражение. То есть используйте следующую строку:
strLine = strLine.replace(temp1,"");
Это отличается от вашего кода тем, что он заменяет все экземпляры temp1 в этой строке, а не только первый, но я думаю, что с вами все будет в порядке.
Насколько мне известно replaceAll("///"","/////"");
будет работать, если вы сбежали правильно: символ выхода \
не /
, Попробуйте использовать это вместо этого.