# Regex mit Punkt



## WinterDragon (25. Nov 2009)

Hallo!

Ich habe folges Problem und hoffe, dass mir vielleicht jemand sagen kann was ich da falsch mache.
Ich muss einen String überprüfen, ob er mit Buchstaben (ein oder mehreren) anfängt, gefolgt von einem Punkt (der Punkt kann vorhanden sein, muss aber nicht) - genauer gesagt sollten die Möglichen eingaben ca. so aussehen:
abc
abc.def
abc.def.ghi
und so weiter.

Mein Code für das Pattern was ich versuche zu machen:

```
if(zeile.matches("[[a-zA-Z]+[\\.]?]+")){
//doSomething
}
```

Ich verstehe nicht ganz wieso ich aber mit diesem Regex aber auch "  .abc.def " eingeben kann - also am Anfang auch einen Punkt. Das sollte nicht sein.

Vielen Dank gleich im Voraus.

lg


----------



## faetzminator (25. Nov 2009)

Gruppen macht man mit () und nicht mit []. Ich würde es mit folgendem versuchen: [c]"([a-zA-Z]+\\.?)+"[/c]
1. "[\\.]?" -> "\\.?" Klammern waren unnötig
2. "[[a-zA-Z]+\\.]+" -> "([a-zA-Z]+\\.?)+" wie gesagt, falsche Klammern


----------



## WinterDragon (25. Nov 2009)

Hey vielen Dank - ich hab dacht, dass die Klammern []  eben eine Gruppierung wären.
Super das ist toll dankeschön  - jetzt gehts endlich richtig - vorher wurde ja auch eigentlih "abc..def" als richtig erkannt was natürlich falsch war.
Danke nochmal!

lg


----------

