04. december 2009 - 19:18Der er
4 kommentarer og 1 løsning
RegExp Pattern matching
Hej
Jeg har en meget lang tekst, hvor jeg skal finde alle de indlejrede tekststrenge der angiver stien til et billed. Det skal være tekststrenge der er angivet i enten " eller ' og billedtyperne .jpg .jpeg .gif .png
det skal starte med ' eller " det skal slutte med .[filformat]" eller .[filformat]'
Jeg er ikke en haj til regExp, men det er der sikkert nogen andre der er :-)
public class ImageFileNameFinder { public static void main(String[] args) { String s = "'a.jpg' er paenere end \"b.gif\", mens 'c.txt' ikke er et billede"; Pattern p = Pattern.compile("(\".*((\\.jpg)|(\\.jpeg)|(\\.gif)|(\\.png))\")|('.*((\\.jpg)|(\\.jpeg)|(\\.gif)|(\\.png))')"); Matcher m = p.matcher(s); while(m.find()) { System.out.println(m.group()); } } }
public class ImageFileNameFinder { public static void main(String[] args) { String s = "'a.jpg' er paenere end \"b.gif\" og 'c.png', mens 'd.txt' ikke er et billede"; Pattern p = Pattern.compile("(\".*?((\\.jpg)|(\\.jpeg)|(\\.gif)|(\\.png))\")|('.*?((\\.jpg)|(\\.jpeg)|(\\.gif)|(\\.png))')"); Matcher m = p.matcher(s); while(m.find()) { System.out.println(m.group()); } } }
beklager den MEGET sene tilbagevenden...sorry. MEN, det virker ikke helt. Problemet er at f.eks. tekst strengen : ************************** <img style="border:0" src="/image/test.png" /> ************************** returnerer :
" src="/image/test.png"
Så det holder ikke helt. Har du et forslag til hvordan det skal klares?
public class ImageFileNameFinder { public static void main(String[] args) { String s = "<img style=\"border:0\" src=\"/image/test.png\" />"; Pattern p = Pattern.compile("(\"[^\"]*?((\\.jpg)|(\\.jpeg)|(\\.gif)|(\\.png))\")|('[^']*?((\\.jpg)|(\\.jpeg)|(\\.gif)|(\\.png))')"); Matcher m = p.matcher(s); while(m.find()) { System.out.println(m.group()); } } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.