我一直在php中使用它...
preg_match_all('|<a href="http://www.example.com/photoid/(.*?)"><img src="(.*?)" alt="(.*?)" /></a>|is',$xx, $matches, PREG_SET_ORDER);
其中 $xx 是作为字符串的整个网页内容,用于查找所有匹配项。
这会将 $matches 设置为一个二维数组,然后我可以使用基于 $matches 长度的 for 语句循环并使用例如 ..
$matches[$i][1]
这将是第一个(.*?)
$matches[$i][2]
这将是第二个(.*?)
等等....
我的问题是如何在java中复制它?我一直在阅读有关 java regex 的教程和博客,并且一直在使用 Pattern 和 Matcher,但似乎无法弄清楚。此外,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>");
没有找到匹配项。