Toon posts:

regex, alles behalve bepaald karakter matchen

Pagina: 1
Acties:
  • 175 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik probeer in java alles tussen <! en > te matchen. Ik heb hiervoor deze regex gemaakt:

code:
1
(?is)<!(.*)>


Deze werkt, hij matcht alleen de laatste > in het document in plaats van de eerste, wat de bedoeling is.

Heeft iemand enig idee hoe ik de match bij de eerste instantie van > op kan laten houden?

Verwijderd

Als ik je goed begrijp is dit wat je zoekt misschien? :)

(?is)<!([^>]*)>

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Gebruik de reluctant quantifier:
Java:
1
2
3
4
5
6
final String input = "<!1><!2><!3>";
Pattern p = Pattern.compile( "(?is)<!(.*?)>");
Matcher m = p.matcher( input );

while( m.find() )
    System.out.println( m.group() );

Zie http://java.sun.com/j2se/...a/util/regex/Pattern.html

[edit] Even het 'bewijs' toegevoegd.

[ Voor 35% gewijzigd door Glimi op 15-10-2004 10:22 ]


  • Reggino
  • Registratie: Augustus 2002
  • Laatst online: 29-11-2023

Reggino

Je weet toch

Je regex is greedy... Dat moet niet. Wat jij wil is:

(?is)<!(.*?)>

Succes!

Het ouwe moet eerst op!


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Reggino schreef op 15 oktober 2004 @ 09:47:
Je regex is greedy... Dat moet niet. Wat jij wil is:

(?is)<!(.*?)>

Succes!
Kijk eens naar de post boven je. ;)

Sundown Circus