# überprüfen ob string unteranderem ein regex enthalten



## Guest (4. Dez 2008)

Hallo,

ich suche nach einer möglichkeit wie ich einen string nach bestimmten regex untersuchen kann. Dabei möchte ich nicht den ganzen input string als regex abbilden sondern nur einen teil.

Also beispiel


```
String test = "Hallo12Welt";
```

Wenn ich jetzt speziell nach den 12 suchen würde könnte könnte ich ja folgendes benutzen


```
test.contains("12");
```

was ich jedoch brauche ist etwas wie


```
test.contains("\\d{1,2}");
```

leider funktioniert das nicht mit regex's. Kennt jemand hier eine möglichkeit???????


----------



## lhein (4. Dez 2008)

Kann man den String nicht in eine RegularExpression wandeln bzw. versuchen ihn als solchen zu kompilieren?
Dann dürfte doch schnell klar sein, ob es eine RegExp war oder nicht.


----------



## Guest (4. Dez 2008)

klar könnte ich den string durchlaufen und ihn so in eine regex umwandeln, nur weis ich nicht genau was dies bringen würde. Glaube nicht das dies ein passender weg währe.
Vielleicht kannst du ein beispiel nennen wie du dir das vorstellst.


----------



## SlaterB (4. Dez 2008)

hmm, das Beispiel klingt gar nicht danach, dass du NACH RegEx suchen willst,
sondern danach, dass du PER RegEx suchen willst,
contains() ist dafür falsch, das sucht nur nach einfachen Text

RegEx musst du natürlich RegEx-mäßig verwenden, erstelle ein Pattern für \\d{1,2}, einen Matcher und verwende Matcher.find(),
ganz normal?

oder hast du einen Text
String test = "Hallo\\d{1,2}Welt";

und willst darin nach der ZEICHENKETTE "\\d{1,2}" suchen?
das ginge wiederum mit contains()


----------



## Murray (4. Dez 2008)

Geht es nicht eher darum, ob ein String einen durch einen Regex beschriebenen Ausruck enthält? Dann müsste man doch nur den Regex um Wildcards vorn und hinten erweitern. Wenn man also prüfen will, ob ein String mindestens eine 1 oder eine 2 enthält, müsste das doch so gehen:

```
boolean contains = java.util.regex.Pattern.matches( ".*[1,2].*", "Hallo12Welt");
```

//EDIT: das bezieht sich natürlich nicht auf Slaters Post (den hatte ich noch nicht gesehen)


----------



## thE_29 (4. Dez 2008)

Oder so?


```
String test = "1X2Y3Y4";
    Pattern testP = Pattern.compile("\\d{2,}");
    System.out.println(">> " + testP.matcher(test).find());
```


----------



## Guest (4. Dez 2008)

@thE_29

thanks, deine idee funktioniert. VIEEEEELLLEEENNNN Dank 
gleich mal ausprobieren


----------



## HoaX (4. Dez 2008)

"hallo12welt".matches(".*\\d{2,}.*")


----------

