# RegEx String zuschneiden?



## Duster (1. Jun 2006)

Morgen, ist es möglich, wenn meine Suchkriterrien eine ]  und eine { sind, den Text der sich dazwischen befindet so zu 
bekommen, ohne das die beiden Klammern im Ergebnis zu sehen sind  ???


----------



## Wildcard (1. Jun 2006)

Mit () werden in RegEx Gruppen erstellt.
Über matcher.group() kannst du anschließend auf die einzelnen Gruppen zugreifen.


----------



## Duster (1. Jun 2006)

Ja das ist klar soweit geht das ja auch allses, aber an der Ausgabe stört mich halt nur das die beiden 
Klammern zu sehen sind! Und ich wollte nicht mit der substring Methode die Klammern wegmachen, weil ich dachte, das 
es vielleicht einen Ausdruck gibt, wo angeben kann nur den Text und nicht die Klammern.


----------



## Wildcard (1. Jun 2006)

Wie gesagt:
Mach eine Gruppe aus dem was innerhalb der Klammern steht und gib nur diese Gruppe aus.


----------



## Guest (1. Jun 2006)

```
Pattern p = Pattern.compile("\\[([^\\]]+)\\]");
Matcher m = p.matcher("ab[Dies ist ein Test]x c[]x[Das hier auch noch]y][");
while(m.find())
  System.out.println(m.group(1));
```
\\[*([^\\]]+)*\\]

Klartext: Eine mindestens ein Zeichen lange Zeichenfolge, die kein ] enthält 
und von [ ] umschlossen ist. Die runde Klammer umschliesst den Teil, den 
du haben möchtest. m.group(*0*) bzw. m.group() ist der komplette Ausdruck 
inklusive der öffnenden und schliessenden Klammer. m.group(*1*) ist das, was
in der runden Klammer steht. Willst du auch die leere Zeichenfolge haben, 
dann ersetze + durch *


----------



## Duster (1. Jun 2006)

Danke, jetzt habe ich es verstanden....


----------

