Micha: Matcher.find() findet 1. Treffer immer doppelt?

Beitrag lesen

Hallo *Markus,

Wieso passiert das, würde ich die If-Verzweigung nicht verwenden?

Das passiert nicht. Zumindest nicht, wenn man Deinen Code, den Du gezeigt hast, nutzt.

  
/**  
  *  
  * Beschreibung  
  *  
  * @version 1.0 vom 08.10.2007  
  * @author Michael Loesler  
  */  
import java.util.ArrayList;  
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
  
public class RegExpTest {  
  
  public static ArrayList<String> getGraphicURLs(String htmlFile){  
    ArrayList<String> graphicURLs = new ArrayList<String>();  
    Matcher matcher = Pattern.compile("<img src=\"(http://[/\\.\\w\\d]+)_\\w*\\.jpg\" alt=\"").matcher(htmlFile);  
    while (matcher.find())   {  
      graphicURLs.add(matcher.group(1)+".jpg?v=0");  
    }  
    return graphicURLs;  
  }  
  
  
   public static void main(String[] args) {  
     String htmlFile = "<div class=\"vsThumbs\"><div id=\"setThumbs\"><a href=\"/photos/14341958@N03/1478405712/in/set-72157602245820202/\" title=\"screenshotDavor\" class=\"image_link\" id=\"set_thumb_link_1478405712\"><img src=\"http://farm2.static.flickr.com/1219/1478405712_d1301e1122_s.jpg\" alt=\"screenshotDavor\" width=\"75\" height=\"75\" /></a><a href=\"/photos/14341958@N03/1499332140/in/set-72157602245820202/\" title=\"HPIM0233\" class=\"image_link\" id=\"set_thumb_link_1499332140\"><img src=\"http://farm3.static.flickr.com/2077/1499332140_e67e8ec92a_s.jpg\" alt=\"HPIM0233\" width=\"75\" height=\"75\" /></a><a href=\"/photos/14341958@N03/1498488199/in/set-72157602245820202/\" title=\"HPIM0251\" class=\"image_link\" id=\"set_thumb_link_1498488199\"><img src=\"http://farm3.static.flickr.com/2059/1498488199_e7ca85916e_s.jpg\" alt=\"HPIM0251\" width=\"75\" height=\"75\" /></a></div>";  
  
     ArrayList<String> graphicURLs = getGraphicURLs(htmlFile);  
     System.out.println("Found " + graphicURLs.size() );  
  
     for (int i=0; i<graphicURLs.size(); i++)  
       System.out.println(  graphicURLs.get(i) );  
  
   }  
}

liefert mir als Ergebnis:

  
Found 3  
http://farm2.static.flickr.com/1219/1478405712_d1301e1122.jpg?v=0  
http://farm3.static.flickr.com/2077/1499332140_e67e8ec92a.jpg?v=0  
http://farm3.static.flickr.com/2059/1498488199_e7ca85916e.jpg?v=0  
  
C:\>Pause  
Drücken Sie eine beliebige Taste . . .

Du musst den zusätzlichen Eintrag woanders erzeugen bzw hinzufügen.

Mit freundlichem Gruß
Micha