# Regex Frage



## Sanix (14. Feb 2010)

Hi,
Ich probiere folgendes zu matches:
[c]abc 12  beliebig viele Leerzeichen</[/c]

Ich möchte abc 12 matchen.

Ich habe es wie folgt probiert:
[c]([^<]+?)[ ]*</[/c]

Diese Variante matched leider alle Leerzeichen mit die am Schluss kommen können. Ich kann jedoch Leerzeichen nicht ausschliessen, da im Namen (hier abc 12) auch Leerzeichen vorkommen können.


----------



## musiKk (14. Feb 2010)

Ich habe Dein Pattern jetzt nicht ausprobiert, aber [c](.*?) *</[/c] geht bei mir wunderbar. Wenn es nur um überflüssige Leerzeichen geht, hätte es aber auch String#trim() getan.


----------



## Sanix (15. Feb 2010)

hmm oke Danke. Hoffte das es auch komplett mit Regex geht.


----------



## SlaterB (15. Feb 2010)

hmm, bei Leerzeichen sollte das minimal werden, da du schon den Reluctant quantifier benutzt, klappt bei mir im Test auch,
denkbar wäre noch, dass sich nicht echte Leerzeichen in dem leeren Teil befinden, Tab wäre was klar anderes,
sonst evtl. auch mal jedes char ausgeben und mit dem char ' ' vergleichen,

gegen Tab und paar andere Whitespaces hilft [\\s]* statt [ ]*


```
public class Test {
    public static void main(String args[])  {
        String st = "abc 12     </";

        Pattern p = Pattern.compile("([^<]+?)[\\s]*</");
        Matcher m = p.matcher(st);
        System.out.println(m.matches() + ", " + m.group(1) + "|");
    }
}
```


----------



## musiKk (15. Feb 2010)

Sanix hat gesagt.:


> hmm oke Danke. Hoffte das es auch komplett mit Regex geht.



Tut es doch?


----------

