2012-01-20 68 views
0

私はHTMLの塊を持っています。言葉を引き出す必要があります。文字列realCleanにはHTMLが含まれています。大きな文字列からワイルドカードを含む文字列を抽出する

<div class="smallfont"> 
<small> 

Originally Posted By: chingy51o 

</small> 
</div> 

私はchingy51oを取り除く必要があります。私はしばらくこの問題を抱えていたので、私は一度私がそれを分離することができることを望んで、Originally Posted By:を含む行を引き出すために私の検索を広げて、私はそこからより具体的なデータを抽出することができますしかし、私はその行を抽出することさえできます。

  String authorString = "Originally Posted By: .*?"; 
      if (realClean.contains(authorString)) { 
        Log.d("AUTHORS!", authorString + "\n"); 
      } 

でも、値は返されません。

答えて

1

Scannerオブジェクトを作成し、各行を検索します。

String authorString = "Originally Posted By:"; 
Scanner scanner = new Scanner(realClean); 
try { 
    while (scanner.hasNextLine()){ 
    String line = scanner.nextLine(); 
    if(line.contains(authorString){ 
     Log.d("AUTHORS!", line.split(authorString)[1] + "\n"); 
    } 
} 
+0

ありがとうございました。あなたがスキャナーに言及したとき、私はドキュメントを見て回って、それを見つけ出すことができるかどうかを見てから、戻ってサンプルコードを見ました。これだけでは私が必要とする出力は得られませんでしたが、それは正しい道のりでした。私は今それを作者を抽出させる。再度、感謝します。 – r2DoesInc

+0

文字列realCleanには、約20の「authorString」が含まれています。 realCleanを反復してそれらをすべて取り出す方法はありますか?私はhttp://pastebin.com/mC0vR9tVを試しましたが、最初の値を繰り返し返すだけです。 – r2DoesInc

0

realCleanが文字列であると仮定すると、String.contains()は、正規表現ではなく、CharSequenceを引数として取ります。文字列に対して正規表現マッチングを実行する場合は、String.matches()を使用するか、正規表現パターンを作成して文字列を手動で一致させる必要があります。

1

このような何かしようとしないのはなぜ:あなたは(スペースのように)、文書の残りの部分から作者を分けるもので改行を置き換えることができ

 int start = realClean.indexOf("Originally Posted By: ") + 22; 
     int end = realClean.indexOf(newline, start); 
     String realAuthor = realClean.substring(start, end); 

+0

+1。いい答えだ – Mob

関連する問題