Toon posts:

[java] regexp newline

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zou graag hebben dat een tekst met newlines ook zou matchen op de reg exp, maar blijkbaar krijg ik het niet gedaan als die er staat. Enig idee wat het probleem is ?

code:
1
2
 Pattern p = Pattern.compile("<TITLE>(.*)</TITLE>", Pattern.MULTILINE);
 Matcher m = p.matcher("/n/n<TITLE>foo</TITLE>");

Verwijderd

Pattern.DOTALL ook nog even meegeven als flag.

Pattern.DOTALL | Pattern.MULTILINE

Verwijderd

Topicstarter
code:
1
2
Pattern p = Pattern.compile("<TITLE>(.*)</TITLE>", Pattern.DOTALL | Pattern.MULTILINE);
Matcher m = p.matcher("/n/n<TITLE>foo</TITLE>");


Het blijft maar niet matchen :-(

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:13

crisp

Devver

Pixelated

is dit geen greedy probleem? en verder is een newline niet \n ipv /n?
zonder dotall zou dit mi moeten werken (zonder enige kennis van java):

code:
1
Pattern p = Pattern.compile("<TITLE>((.|\n)*?)</TITLE>", Pattern.MULTILINE);


Multiline is trouwens ook niet nodig, dat heeft alleen effect op ^ en $

[ Voor 14% gewijzigd door crisp op 01-05-2004 13:15 ]

Intentionally left blank


Verwijderd

Gebruik je dan soms m.matches() ?
Die returnt alleen true als de hele te testen string voldoet aan het patroon. Als je wilt weten of een stukje van die string aan het patroon voldoet, moet je m.find() gebruiken.