# Java String Regex - Sonderzeichen Filtern



## xX_QueAnw_Xx (13. Mrz 2011)

Hey hat jemand für mich ein Snippet für mich mit dem ich bei vorhandenen Sonderzeichen einen Boolechen Wert zurück bekomme?

Ich habe gegoogelt und bin auf Regex gestoßen komme aber nicht so wirklich zurecht mein Ansatz:

```
String fail="aasdf&%&";
System.out.println("Fail: "+fail.matches("^[a-zA-Z0-9]+"));
```

Gibt aber immer False zurück. SInn und Zweck sind es lediglich a-z A-Z 0-9 und _ zu zu lassen.

mfG QueAnw


----------



## heheh (13. Mrz 2011)

Das ^-Zeichen muss innerhalb der Klammer vorne stehen 

Sieh: Predefined Character Classes (The Java™ Tutorials > Essential Classes > Regular Expressions)


----------



## xX_QueAnw_Xx (13. Mrz 2011)

```
String fail="aasdf&%&";
        System.out.println("Fail: "+fail.matches("[^a-zA-Z0-9]+"));
```

Reicht leider immer noch nicht. Kann ich das überhaupt nur über die String Klasse machen?

Oder Benötige ich die Util.Regex klassen. Ich will ja eigentlich nur einen Boolechenwert


----------



## eRaaaa (13. Mrz 2011)

xX_QueAnw_Xx hat gesagt.:


> SInn und Zweck sind es lediglich a-z A-Z 0-9 und _ zu zu lassen.




```
\w 	A word character: [a-zA-Z_0-9]
\W 	A non-word character: [^\w]
```

Pattern (Java Platform SE 6)
???:L


----------



## xX_QueAnw_Xx (13. Mrz 2011)

hmmm ja ich werde mich jetzt erstmal einlesen aber:

```
String test1="abc";
        String fail="aasdf&%&";
        System.out.println("Test1: "+test1.matches("\\w"));
        System.out.println("Fail: "+fail.matches("\\w"));
```

Ausgabe:

```
Test1: false
Fail: false
BUILD SUCCESSFUL (total time: 0 seconds)
```


.... FAIL hab * vergessen ty:
        System.out.println("Test1: "+test1.matches("\\w*"));
--> True


----------



## heheh (14. Mrz 2011)

xX_QueAnw_Xx hat gesagt.:


> SInn und Zweck sind es lediglich a-z A-Z 0-9 und _ zu zu lassen.



Enthält nur 
	
	
	
	





```
[\\w_]
```
:

```
String s1 = "ab_c";
        String s2 = "aasdf&%&";
        System.out.println("s1: " + s1.matches("[\\w_]+"));
        System.out.println("s2: " + s2.matches("[\\w_]+"));
```

Enthält nicht nur 
	
	
	
	





```
[\\w_]
```
:

```
String s1 = "ab_c";
        String s2 = "aasdf&%&";
        System.out.println("s1: " + !s1.matches("[\\w_]+"));
        System.out.println("s2: " + !s2.matches("[\\w_]+"));
```

Der angegebene Regex muss den gesamten String beschreiben


----------

