gudn tach!
entsprechend dem "am ende" ($) solltest du auch ein "am anfang" (^) definieren, z.b. so:
reg = /[1]{2,}@domain.de$/;
Er will mindestens 2 Buchstaben vor derm @domain.de, er hat aber nicht gesagt, was davor noch soll. Eine E-Mailadresse kann durchaus aus wesentlich mehr bestehen, als nur Kleinbuchstaben vor dem @.
selbstverstaendlich kann sie das. ob sie das auch darf, soll der OP entscheiden. ich sagte lediglich, dass er imho auch ein "am anfang" definieren solle. wie er das letztlich macht, ist mir wurscht. ein moegliches beispiel habe ich gegeben.
wenn man die beschreibung des anfangs weglaesst, ist z.b. auch sowas wie "foo@@@4567,./,.;;;\n\n\n\r\n367@@@bar@domain.de" erlaubt. ich halte es fuer unwahrscheinlich, dass der OP sowas zulassen moechte.
Aber mich interessiert primär der andere - weil unbekannte - Weg!
ah, ok. sowas kannst du afaik nicht direkt bewirken; hoechtens indirekt ueber trickserei, aber das ist unnoetig, da es ja logische operatoren gibt oder auch else-zweige.
Kann man schon. (?!) als negativer lookahead macht genau das.
nein. eben nicht _genau_ das. ein negative look-ahead negiert nicht ein komplettes suchmuster, sondern betrachtet nur den kontext (negativ).
'foo(?!@domain.de) passt auf jedes foo, dem kein @domain.de folgt.
richtig. zum beispiel werden da gematcht:
foo
foobar
fo@domain.de
fooo@domain.de
und jetzt versuch mal mit negative look-aheads die negation von
/[2]{2,}@domain.de$/
zu basteln.
oh, glueck gehabt. es geht z.b. mit
/^(?![a-z]{2,}@domain.de$)/
also fast ohne trickserei. aber dass man das ^ ausserhalb der klammer notieren muss und das $ innerhalb der klammer, ist imho bereits trickserei genug, zu behaupten, dass die negation via negative look-aheads eben nicht immer so direkt moeglich ist.
nun gut, aber was ist z.b. mit der negation von /[a-z]{2,}@domain.de$/ ?
/(?<![a-z]{2,}@domain.de)$/
funzt nicht, weil negative look-behinds nicht variabler laenger sein duerfern (zumindest in perl).
aber halt! mit negative look-aheads geht das deiner meinung nach ja direkt. also wie lautet der "direkte" ausdruck?
prost
seth