私はphpでこれを使用しています...
preg_match_all('|<a href="http://www.example.com/photoid/(.*?)"><img src="(.*?)" alt="(.*?)" /></a>|is',$xx, $matches, PREG_SET_ORDER);
ここで、$xx は Web ページのコンテンツ全体を文字列として表したもので、すべての一致を検索します。
これにより、$matches が 2 次元配列に設定されます。これを $matches の長さに基づいて for ステートメントでループし、たとえば ..
$matches[$i][1]
どれが最初だろう(.*?)
$matches[$i][2]
これは2番目になります(.*?)
等々....
私の質問は、これを Java でどのように複製できるかということです。Java regex に関するチュートリアルやブログを読んでいて、Pattern と Matcher を使用していますが、理解できないようです。また、マッチャーは何も見つけません。だから私while(matcher.find())
は無駄で、通常、まだ一致が見つからないというエラーをスローします
これは、一致するパターンの私のJavaコードです...
String pattern = new String(
"<a href=\"http://www.example.com/photoid/(w+)\"><img src=\"(w+)\" alt=\"(w+)\" /></a>");
私も試してみました..
String pattern = new String(
"<a href=\"http://www.example.com/photoid/(.*?)\"><img src=\"(.*?)\" alt=\"(.*?)\" /></a>");
と
String pattern = new String(
"<a href=\"http://www.example.com/photoid/(\\w+)\"><img src=\"(\\w+)\" alt=\"(\\w+)\" /></a>");
一致するものは見つかりません。