perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 28
Click for quality!




10.02.2012 / 09:18

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDatei/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

Beitragre: 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

Beitragre: 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

Beitragre: 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/perl

use 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

BeitragDer gute alte Vertipper, ;-)
Seitenanfang
my $address = sprintf "%s@%s%s", $user, $domain, $tld;

Datum: 16.10.2007-19:56

Beitragre: 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

Beitragre: 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

-






-
-