2011-07-11 13 views
1
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); 

は基本的に私は、しかしJavaがあれば、これまで私のコードのみ機能

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

を含むファイルからからこの文字列

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

を削除したい引用符が含まれるサブストリングを削除します文字列に引用符は含まれません。どうすればこの問題を解決できますか。私は使用しようとしました

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

まだ失敗しました。

すべてのヘルプまたは情報は、大いに評価されます。

+5

HTMLパーサーを使用する必要があります。 – SLaks

+0

はい、これは私が最終的に望むものです。このコードは引用符なしでうまく動作します。 – Jake

+0

http://stackoverflow.com/questions/240546/removing-html-from-a-java-stringを参照してください。それは本当にシンプルです – itsadok

答えて

0

replaceFirstは正規表現を受け入れますが、正規表現で特定の意味を持つすべての種類の特殊文字を含む任意の文字列を指定しています。私は引用符があなたの問題だとは思わないが、むしろ 疑問符 カッコがあります。

これを回避する1つの方法は、正規表現ではなく文字列を受け入れるString#replaceメソッドを使用することです。それは、次の行を使用している:これは、それがその行にTEMP1のすべてのインスタンスを置き換えることで、あなたのコードは異なり

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

だけではなく、最初のものを、私はあなたはそれで問題ないはずだと思います。

+0

はい、ありがとう、strLine.replaceAllをstrLine.replaceに変更すると私の問題は解決しました。 – Jake

0

AFAIK replaceAll("///"","/////"");エスケープ文字が\で、/ではありません。代わりにそれを使ってみてください。

+0

temp1 = temp1.replaceAll( "\\\" "、" \\\\\ "");私はこれを試みたが、それはまだ動作しません。多分その引用のためではない。 – Jake

関連する問題