Gibt es dafür einen regulären Ausdruck?

oldshoe

Bekanntes Mitglied
Hallo,
ich möchte lediglich feststellen ob ein String Zahlen und Buchstaben enthält.
Beispiele: d500, 500sd, x500si, 9mm, x8d8

Ich kann keinen Ausdruck finden der das erkennt!
Mein Beispiel: \w+\d+\w+ erkennt z.B. die 9mm nicht und würde auch bei einer bloßen Zahl für match ein true liefern.

Hat jemand eine Idee?
 
Es soll überprüft werden, ob die Zeichenkette aus Buchstaben und Zahlen besteht.
Entweder eine verschachtelte Prüfung oder sowas in der Art:
Java:
	String[] text =  {"d500", "500sd", "x500si", "9mm", "x8d8", "123", "abc"};
	Pattern pattern = Pattern.compile("[A-Za-z]+[\\d]+\\w*|[\\d]+[A-Za-z]+\\w*");
	for (int i=0; i<text.length; i++) {
		Matcher matcher = pattern.matcher(text[i]);
		System.out.println(text[i]+ ": " + matcher.matches());
	}
Da ich kein RegEx Experte bin, konnte es durchaussein, dass sich das auch kürzer schreiben lässt.
 
Wieso nicht einfach:
[c][a-zA-Z0-9]+[/c]

wenn es eine mind.länge haben soll:
[c][a-zA-Z0-9]{3,}[/c]

oder übersehe ich gerade iwas wichtiges?

Edit Wieso kommt die Erkenntnis erst nachdem man auf Absenden geklickt hat?! :autsch:

MFG

Tomate_Salat
 
Hmmm, also eine richtige Lösung war bisher leider noch nicht dabei.
Die Lösung von Michael... scheitert an Begriffen wie 8d8z alle anderen scheitern bei Zahlen wie 400
Wahrscheinlich muss ich wirklich 2 Überprüfungen machen. Zuerst schauen ob Buchstaben enthalten sind und dann ob auch zahlen enthalten sind.
Oder noch anderen Ideen?
 
Hm, in deinem ersten Post sprichst du von Zahlen und Buchstaben, jetzt soll z.b. 400 auch gültig sein.
Sag vielleicht nochmal was genau du willst.
 
Nein 400 soll ungültig sein!

Edit: Oha jetzt war ich durcheinander. Also Michaels Ansatz funktioniert scheinbar. Eine Anwendung auf bloße Zahlen liefert korrekterweise ein false.
 
Zuletzt bearbeitet:

Zurück
Oben