|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Datei/E-Mail nach unbestimmten String durchsuchen
|
Seitenanfang |
Hallo zusammen. Klicke mich jetzt schon länger durch verschiedene Internetseiten und wälze ein paar Bücher, doch komme einfach nicht weiter.Ich möchte einen Text (Einlesen klappt, Ausgabe auch) nach einem bestimmten String durchsuchen, ohne aber zu wissen, wie dieser genau lautet. Klingt komisch? Ist aber leider so ;-) Konkretes Beispiel: Eine E-Mail wird eingelesen und ich weiß, dass im Header die Zeile "TO: Nachname, Vorname <user@domain.tld>" steht. Ich brauche aber in der Folge des Programmes nur den Teilstring "user@domain.tld", in diesem Beispiel also die Adresse des Empfängers. Alle bisherigen Lösungen, die ich gefunden habe, gehen von einem bekannten Suchstring aus. Ich hänge also fest. Gibt es z.B. eine Möglichkeit, in diesem Fall nach dem String zu suchen, der zwischen den "< >" steht? Das "TO" muss dann wohl auch noch rein, da dieses Muster zu häufig auftritt. Hoffe nur, ich habe jetzt nicht irgendwas erfragt, was absoluter Standard ist. Dann bitte zumindest nen Link/Quelle, wo ich mehr Infos bekomme. Danke für eure Hilfe!
Datum: 15.10.2007-17:12

|
re: Datei/E-Mail nach unbestimmten String durchsuchen
|
Seitenanfang |
Vielleicht helfen dir ja die folgenden Zeilen weiter:use strict; my $string = 'TO: Nachname, Vorname <user@domain.tld.de>'; $string =~ /TO:\s*.+,\s*.+\s*<([^\@]+)\@([^\.]+)([\.\w+]+)>/; my ($user,$domain,$net) = ($1,$2,$3);
Datum: 16.10.2007-07:55

|
re: Datei/E-Mail nach unbestimmten String durchsuchen
|
Seitenanfang |
| So, grad mal ein bissele rumgespielt, superklasse!!! Ein kleines Problem habe ich allerdings noch, kann aber auch gut an mir liegen - wird wohl auch ;-) Da ich im späteren Verlauf des Skriptes auch die komplette Adresse brauche, dachte ich mir, ich füge die einfach mal zusammen. Gesagt und getan, folgende Codezeilen dafür verwendet: my $mailadress = $user . $klaffe . $domain . $net; wobei >> my $klaffe = "\@"; << definiert ist. Allerdings die Frage, geht das nicht einfacher? Funktionieren tuts auf jeden Fall, jetzt muss ich nur noch hinbekommen, dass er das Array richtig durchsucht, aber das wird schon! Danke und Gruße scrat
Datum: 16.10.2007-11:19

|
re: Datei/E-Mail nach unbestimmten String durchsuchen
|
Seitenanfang |
| Hi scrat. zu 1:
my $address = sprintf "%s@%s%s%s", $user, $at, $domain, $tld;
zu 2: perldoc -f grep Beispiel:
#!/usr/bin/perluse strict; use warnings; my $at = '@'; my @datei = ( 'lkjhopl ihölkjlhW AVPOIKJHA.VOIH WLKISJUD', 'TO: HARRY, hirch <harry@dolmen.net>', 'jjsoiuza aöpoia <kisu@kjloiukspoi', 'To: Mosen, Posen <mosen@posen.co.yu>', ); my @email = grep { s/TO:\s*.+,\s*.+\s*<([^\@]+)\@([^\.]+)([\.\w+]+)>/$1$at$2$3/i } @datei; print $_ . "\n" foreach @email;
War das der Anstoß? Ansonsten mal in die Howtos schauen. perldoc perlre -uw
Datum: 16.10.2007-19:54

|
Der gute alte Vertipper, ;-)
|
Seitenanfang |
my $address = sprintf "%s@%s%s", $user, $domain, $tld;
Datum: 16.10.2007-19:56

|
re: Der gute alte Vertipper, ;-)
|
Seitenanfang |
Moin TbHoCne. Super, danke dir, auch für die weiterführenden Links.Werde ich gleich mal lesen. Dir viel Dank, scrat
Datum: 16.10.2007-21:25

|
re: Datei/E-Mail nach unbestimmten String durchsuchen
|
Seitenanfang |
Super, danke dir. Das ist zumindest ein Ansatz, werde später nochmal ausführlicher testen, ob alles so klppat wie gewünscht.Dnake dir! Daniel
Datum: 16.10.2007-09:15

|
|

|

|

|
 |

|

|
|