これは私がデータを取得したい文字列のフォーマット/例です:
<span style='display:block;margin-bottom:3px;'><a style='margin:4px;color:#B82933;font-size:120%' href='/cartelera/pelicula/18312'>Español </a></span><br><span style='display:block;margin-bottom:3px;'><a style='margin:4px;color:#FBEBC4;font-size:120%' href='/cartelera/pelicula/18313'>Subtitulada </a></span><br> </div>
そして、これは私が使用している正規表現です。
"pelicula/([0-9]*)'>([\\w\\s]*)</a>"
この正規表現をRegexPlanetでテストしたところ、OKであることがわかり、期待どおりの結果が得られました。
group(1) = 18313
group(2) = Subtitulada
しかし、その正規表現をJavaで実装しようとすると、何にも一致しません。コードは次のとおりです。
Pattern pattern = Pattern.compile("pelicula/([0-9]*)'>([\\w\\s]*)</a>");
Matcher matcher = pattern.matcher(inputLine);
while(matcher.find()){
version = matcher.group(2);
}
}
どうしたの?正規表現がすでにテストされていて、同じコードでさらにパターンを検索しているが、2つで問題が発生している場合(ここでは1つだけを示しています)。前もって感謝します!
_編集__ _
問題を発見しました...ページのソースコードを確認するとすべてが表示されますが、Javaから使用しようとすると、別のソースコードが取得されます。なんで?このページはあなたの街を尋ねるので、それについての情報を表示することができます。実際に必要な情報にアクセスするための回避策があるかどうかはわかりませんが、それだけです。