seth_not@home: Regex! Suche ein Wort mit Buchstaben UND Zahlen

Beitrag lesen

gudn tach!

Ich möchte das gerne für beliebige Zeichen realisieren und habe es jetzt mit

(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9]).+

probiert. Reguläre Ausdrücke scheinen nicht meine Stärke zu sein. Es funktioniert leider nicht und ich kann mir auch nicht erklären wieso.

/(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9]).+/

matcht das gleiche wie

/(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9])/

also eine stelle, nach der sowohl
  /[^a-zA-Z]*[a-zA-Z]/
als auch
  /[^0-9]*[0-9]/
matcht.

sollte also funzen.

im code kuerzer wird's uebrigens mit

/(?=[^a-z]*[a-z])(?=\D*\d)/i

(?= ... ) ist eine Bedingung die auf das komplette Wort geprüft wird und das Ergebnis muss wahr sein um den Rest des Ausdrucks auch auszuwerten, richtig?

nee, sowas gibt es zwar auch. aber das hier ist eine zero-width positive look-ahead assertion. siehe "perldoc perlre".

prost
seth