PhilippGer
Mitglied
Hi.
Ich soll in einem Programm den Quelltext einer Website auf <img ...> Tags durchsuchen und dann Eigenschaften dieses Tags weiterverarbeiten.
Das herausfiltern der Tags mit Pattern und Matcher klappt soweit prima.
Ich erhallte dann Strings der Form:
Diese möchte ich nun weiter untersuchen um die EIgenschaften einzeln zu FIltern.
Dabei lasse ich (für src) z.B. mit dem Pattern:
suchen.
Dadurch bekomme ich allerdings dann immer Suchergebnisse, die auch "src="" enthalten. Muss ich diese Zeichen nun einzeln abschneiden?
Ich denke mal es gibt eine elegantere Lösung, dass das Pattern zwar darauf achtet, dass diese Form beibehalten wird, im Resultat aber nur alles zwischen den Anführungszeichen steht.
Hier mal der Code einer Testumgebung:
Ich soll in einem Programm den Quelltext einer Website auf <img ...> Tags durchsuchen und dann Eigenschaften dieses Tags weiterverarbeiten.
Das herausfiltern der Tags mit Pattern und Matcher klappt soweit prima.
Ich erhallte dann Strings der Form:
Code:
<img src=\"google.de\" alt="nicht gefunden" width=\"100\" height=\"150\">
Diese möchte ich nun weiter untersuchen um die EIgenschaften einzeln zu FIltern.
Dabei lasse ich (für src) z.B. mit dem Pattern:
Code:
String p = "src=\"\\S*\"";
Dadurch bekomme ich allerdings dann immer Suchergebnisse, die auch "src="" enthalten. Muss ich diese Zeichen nun einzeln abschneiden?
Ich denke mal es gibt eine elegantere Lösung, dass das Pattern zwar darauf achtet, dass diese Form beibehalten wird, im Resultat aber nur alles zwischen den Anführungszeichen steht.
Hier mal der Code einer Testumgebung:
Code:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
String a = "<img src=\"google.de\" width=\"100\" height=\"150\">";
String p = "<img src=\"\\S*\" width=\"\\d*\" height=\"\\d*\">";
Matcher matcher = Pattern.compile(p).matcher(a);
boolean found = false;
while(matcher.find()){
String imgTag = matcher.group();
System.out.println("Tag:");
System.out.println("\t" + imgTag);
System.out.println("\t" + srcPattern(imgTag) );
found = true;
}
if( !found ){
System.out.println("Sorry, nothing found");
}
}
public static String srcPattern(String tag){
String p = "src=\"\\S*\"";
Matcher matcher = Pattern.compile(p).matcher(tag);
if(matcher.find()){
return matcher.group();
}
else{
return "nothing found";
}
}
}