[Java] Jakarta Regexp probs

Pagina: 1
Acties:

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47
Ok.. dankzij een eerdere topic ben ik aan de slag gegaan met Jakarta Regexp.. Dat hele ding werkt alleen voor geen meter heb ik het idee, naast het feit dat het nogal erg beperkt is in de mogelijkheden.

Wat wil ik?
code:
1
2
RE re = new RE("<script.*</script>");
data = re.subst(data, "");

data is hierbij een willekeurige html-pagina van internet die dus gestript moet worden van <script>-tags (hij is reeds ontdaan van linebreaks)... Nu werkt bovenstaande code prima als ik hem loslaat op een string als "<script afjkgnsdf>dsfgs</script>", maar ik krijg een berg exceptions als ik dit op een langere string doe als de src van www.yahoo.com.
code:
1
2
3
4
5
6
7
Exception in thread "main" java.lang.StackOverflowError
      at org.apache.regexp.StringCharacterIterator.isEnd(StringCharacterIterator.java:96)
      at org.apache.regexp.RE.matchNodes(RE.java:1121)
      at org.apache.regexp.RE.matchNodes(RE.java:1376)
      at org.apache.regexp.RE.matchNodes(RE.java:1376)
      at org.apache.regexp.RE.matchNodes(RE.java:1376)
[...]

Die laatste regel herhaalt zich dan een paar honderd keer :P

Iemand met meer ervaring met (Jakarta) Regexp die weet wat er fout is?

Verwijderd

Je regexp is nu greedy. dus hij matched nu ALLES tot de laatste </script> in de pagina.

Ik ben geen jakarta junk, maar probeer dit eens,
wellicht helpt het.
code:
1
2
RE re = new RE("<script.*?</script>");
data = re.subst(data, "");

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47
Je bent een held ;)

Thanks!