Hallo ihr da,
ich teste gerade etwas mit awk und reguläre ausdrücke unter linux.
und zwar habe ich eine datei mit verschiedenen e-mail adressen die ich extrahieren möchte, doch irgendwie stehe ich gerade voll auf dem schlauch und verstehe meine eigenen regulären ausdrücke nicht mehr.
ich schreibe mal wie ich vorgehe, vieleich ist mein vorgehen ja falsch, also ich nehme mir das was ich suchen möchte, in diesem fall eine e-mail adresse und meinen regulären ausdrück wie ich es denke:
irgendwas@keineahnung.de
[A-z]+@[A-z]+.[A-z]+$
so, [A-z] bedeutet doch das ein zeichen von A-z egal ob gross oder klein geschrieben.
da ich aber nicht weiss wie lang der string vor dem @-zeichen ist, setze ich ein + dahinter, das + bedeutet doch "Ein oder mehreres Auftreten des vorangegangenes Zeichen" in diesem fall das eines ziwschen A-z.
danach soll ein @ zeichen kommen also bin ich schon soweit:
[A-z]+@
nach dem @ kommt wieder ein string dessen länge ich nicht kenne also wieder [A-z]+
dann kommt im normalfall ein punkt, da ein punkt aber eine funktion hat kaskadiere ich ihn .\ nun bin ich soweit:
[A-z]+@[A-z].\
nach dem punkt . kommt dann ja meistens die TPL endung de oder org oder auch com [... usw]
die setzte ich auch mit [A-z]+ zusammen da ich ja auch nicht die länge kenne ob nun de 2 oder com 3 und ausserdem noch am ende des musters $
fertig ist mein ausdruck:
[A-z]+@[A-z]+.[A-z]+$
Mit awk im zusammenhang der datei aus dem die adressen gesucht werden sollen:
awk '/[A-z]+@[A-z]+.[A-z]+$/{print "Gefunden",$0}'
doch mir wird nichts angezeigt.
schreibe ich den ausdruck so:
[A-z]+@[A-z]+.\de$
bekomme ich mailadresse mit endung 'de' aber ich möchte alle haben wo ich die endung nicht kenne.
ich hoffe mir kann da einer helfen und evtl. mich auf einen denkfehler hinweisen.
deshalb habe ich auch alles ausführlich geschrieben, vieleicht kann der ein oder andere einen denkfehler ausmachen.
danke im vorraus!
euer Sample0