Java删除包含引号的子字符串

时间:2011-07-11 12:32:33

标签: java string replace quotes

    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 :(得分:0)

如果您正确转义,AFAIK replaceAll("///"","/////"");将起作用:转义字符为\,而不是/。请尝试使用它。

答案 1 :(得分:0)

你的问题是replaceFirst接受一个正则表达式,但是你正在为它提供一个任意字符串,它可能包含在正则表达式中具有特定含义的各种特殊字符。我不认为报价是你的问题,而是问号括号。

解决此问题的一种方法是使用String#replace方法,该方法接受字符串而不是正则表达式。也就是说,使用以下行:

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

这与你的代码的不同之处在于它取代了该行中temp1的所有实例,而不仅仅是第一行,但我认为你应该没问题。