AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Absender der eMail

Ein Thema von theomega · begonnen am 15. Aug 2002 · letzter Beitrag vom 16. Aug 2002
Antwort Antwort
Seite 2 von 3     12 3   
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#11
  Alt 16. Aug 2002, 08:24
Zitat von Luckie:
Augen auf Chef:
In der unteren zeile sind eckige Klammern drin und irgendwo am Anfang noch ein Fragezeichen.
Ahem ... Luckie... also es ist so:
Betrachten kann ich mir die Zeilen selber. Und dabei bin sogar ich in der Lage, die formalen Unterschiede festzustellen. Ich habe mich offenbar ungenau ausgedrückt:
Was mich eigentlich interessierte, war die Antwort auf die Frage, was diese beiden Zeilen eigentlich genau machen.
Auf den ersten Blick scheint es sich um reguläre Ausdrücke zu handeln, und um das Suchen und Ersetzen von Zeichenektten.
Aber kann mir das mal einer genau aufdröseln, was da gesucht wird, und wodurch es ersetzt werden soll?


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12
  Alt 16. Aug 2002, 08:32
Mist, ich wußte doch dass es eine Fangfrage war.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#13
  Alt 16. Aug 2002, 11:34
Zitat von Daniel:
Fehler lokalisiert und behoben. Ich habe nur nicht verstanden, was da falsch ist. Kann mit mal einer den Unterschied zwischen den folgenden Zeilen erklären:
Code:
preg_match("/^(Subject:(.*?)(?:\r\n)+?)?(Charset:(.*?)(?:\r\n)+?)?(.*?)$/is", $this->msg, $match);

preg_match("/^(Subject:(.*?)[\r\n]+?)?(Charset:(.*?)[\r\n]+?)?(.*?)$/is", $this->msg, $match);
So ganz versteh ich den auch nicht, aber zunächst einmal ist der Unterschied, dass oben ?:\r\n und unten [\r\n] steht. Beim unteren steht der Zeilennumbruch also in eckigen Klammern und bildet somit eine Charakterklasse. Was das genau ist,m weiß aich auch nicht, aber eigentlich sollten die beiden Steuerzeichen innerhalb und außerhalb einer Charakterklasse das selbe tun, deswegen denk, ich, dass sie eckigen Klammern nicht notwendig sind.
Es kommt wohl nur auf ?: an. Was das am Anfang einer Klammer bedeutet, wird so erklärt:

Zitat von PHP-Manual:
For example, if the string "the red king" is matched against
the pattern

the ((red|white) (king|queen))

the captured substrings are "red king", "red", and "king",
and are numbered 1, 2, and 3.

The fact that plain parentheses fulfil two functions is not
always helpful. There are often times when a grouping sub-
pattern is required without a capturing requirement. If an
opening parenthesis is followed by "?:", the subpattern does
not do any capturing, and is not counted when computing the
number of any subsequent capturing subpatterns. For example,
if the string "the white queen" is matched against the
pattern

the ((?:red|white) (king|queen))

the captured substrings are "white queen" and "queen", and
are numbered 1 and 2. The maximum number of captured sub-
strings is 99, and the maximum number of all subpatterns,
both capturing and non-capturing, is 200.
Ich versteh es nicht so ganz genau, aber vielleicht hilft das denjenigen etwas, der das oben angesprochene Problem verstehen will. Und wer noch mehr lesen will: http://www.php.net/manual/de/pcre.pattern.syntax.php
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#14
  Alt 16. Aug 2002, 11:41
Danke für Deine Antwort! Mal abgesehen davon, dass ich mir dieses Thema an einem langen Winterabend einmal in Ruhe zu Gemüte führen muss, betrachte ich dieses Problem als gelöst.


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#15
  Alt 16. Aug 2002, 15:20
Nette Regular Expressions:
Code:
preg_match("/^(Subject:[color=#ff0000](.*?)(?:\r\n)[/color]+?)?(Charset:(.*?)(?:\r\n)+?)?(.*?)$/is", $this->msg, $match);

preg_match("/^(Subject:[color=#ff0000](.*?)[\r\n][/color]+?)?(Charset:(.*?)[\r\n]+?)?(.*?)$/is", $this->msg, $match);
Ich bin nicht wirklich dingfest mit den Regular Expressions, aber folgender Unterschied wird gemacht.

Variante 1: (.*?)(?:\r\n)

/^ - Der Text fängt an mit Subject: geht weiter mit X beliebigen Zeichen ausser Zeilenumbruch .* und geht weiter mit einem beliebigen Zeichen ? und noch einem beliebigen Zeichen ? und einem Doppelpunkt : gefolgt von einem Zeilenumbruch \r\n und mindestes + einem weiteren beliebigen Zeichen ?

--> Kurz, die Zeile müsste folgenden Aufbau treffen (Ein Doppelpunkt zuviel):
Subject:yyyyy:\r\ny

Variante 2: (.*?)[\r\n]

/^ - Der Text fängt an mit Subject: geht weiter mit X beliebigen Zeichen ausser Zeilenumbruch .* und wird durch einen Zeilenumbruch (#13 od #10) \r\nabgeschlossen - halt eine normalen Subject Line.

--> Kurz, die Zeile müsste folgenden Aufbau treffen:
Subject:yyyyy:\r\n
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#16
  Alt 16. Aug 2002, 17:04
Zitat von sakura:
... und noch einem beliebigen Zeichen ? und einem Doppelpunkt : ...
Ich glaub, hier liegst du falsch. Die Kombination (?: bedeutet nicht beliebiges Zeichen und Doppelpunkt, sondern bewirkt etwas mit dieser Klammer. Was genau, steht bei dem Link, den ich oben gepostet hab, im Abschnitt subpatterns. Aber was das genau bedeutet, hb ich nicht so genau verstanden. Vielleicht tust dus ja.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#17
  Alt 16. Aug 2002, 17:10
Ich glaube, ich liege richtig

(___) erstellt ein "Sub-Query", als erstes in dieser Subquery kommt ein beliebieges Zeichen ? und anschließend ein Doppelpunkt :. Ich habe die Klammern im letzten Posting nicht namentlich angeführt, sollte aber jeweils die richtige Gruppierung beibehalten haben.

@Daniel: Ich bekomme endlich wieder E-Mails...
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#18
  Alt 16. Aug 2002, 17:15
Also ich habe mal an alle ein Frage:
ich habe ja was ganz anderes gefragt, als dass über dass ihr hier debatiert. Ich wollte nur wissen warum der Absender der eMail so komisch ist. Was ihr da besprecht ist doch was ganz anderes.

BTW: Inzwischen passt der Absender wieder.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19
  Alt 16. Aug 2002, 17:15
Ich auch, ich auch, ich auch. Also ich bekomme auch wieder welche.

Das hängt wohl damit zusammen, enke ich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#20
  Alt 16. Aug 2002, 17:19
@theomega: Bei mir ist der Absender (wieder) richtig. Der Grund war wohl die eine Zeile im Skript.

Später waren wir dann nur noch auf die Unterschiede dieser eingegangen.

Stimmt Dein Absender jetzt
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz