# RegEx matches()



## Alex_winf01 (23. Mrz 2011)

Hallo liebe Forengemeinde,

einen String aus einem Textfeld prüfe ich wie folgt:


```
s.matches("[A-Za-z0-9 -_.:,ÄöOuU€@!^?\\%´`!\]*");
```

Gebe ich nun einen Zeilenumbruch ein, dann kommt die von mir erwartete Antwort, dass diese Eingabe nicht gültig ist. Gebe ich jedoch ein ; ein, dann kommt diese Antwort nicht. Das ; wird als richtige Eingabe akzeptiert. Was mache ich falsch?


----------



## Stewe (23. Mrz 2011)

Der Punkt '.' gilt als ein beliebiges Zeichen. Daher kannst du irgendein Zeichen eingeben.
Siehe regex


----------



## qweqewq12323 (23. Mrz 2011)

Du kannst nicht einfach wilde Zeichen aneianderreihen. Es sind Sonderzeichen dabei, die zu entwerten sind. So dürfte dein Ausdruck ohnehin ein Fehler werfen, da das letzte \ nicht entwertet wurde. 
Ursache warum dein ; gefunde wird ist das nciht entwerten des -

"[A-Za-z0-9 \\-_.:,ÄöOuU€@!^?\\\\%´`!\\\\]*"


RegEx: online regular expression testing


----------



## Alex_winf01 (23. Mrz 2011)

@ Stewe

und wie kann ich den Punkt als gültiges Zeichen zulassen? Vielen Dank schon mal.

@ qweqewq12323

welche Sonderzeichen muss ich denn "entwerten" und was verstehst Du unter "entwerten"?


----------



## qweqewq12323 (23. Mrz 2011)

welche Sonderzeichen muss ich denn "entwerten" -> Pattern (Java 2 Platform SE v1.4.2)

Die die da eine Sonderstellung einnehmen

"und was verstehst Du unter "entwerten"? "

Bsp. Punkt:
. ->beliebiges Zeichen

\. -> entwertet bedeutet Punkt


----------

