Es gibt mehrere Möglichkeiten, dies zu tun. Sie könnten die Zeichenfolge auf das Leerzeichen aufteilen und dann in TStringList einspeisen. Sie können dann die TStringList-Eigenschaft Value [String] verwenden, um den Wert eines gegebenen Namens abzurufen.
, das zu tun, tun ersetzen eine Zeichenfolge aller Räume mit Komma:
newString := StringReplace(oldString, ' ', ',', [rfReplaceAll]);
Dann das Ergebnis in eine TStringList importieren:
var
MyStringList : TStringList;
begin
MyStringList := TStringList.Create;
try
MyStringList.CommaText := StringReplace(oldString, ' ', ',', [rfReplaceAll]);
Result := MyStringList.Values['email'];
finally
MyStringList.Free;
end;
end;
Dies wird Ihnen die E-Mail-Wert. Sie müssen dann die Zeichenfolge auf das "@" -Symbol aufteilen, was eine relativ triviale Übung ist. Dies funktioniert natürlich nur, wenn Leerzeichen tatsächlich ein Trennzeichen zwischen Feldern sind.
Alternativ können Sie einen regulären Ausdruck verwenden, aber Delphi nicht unterstützt diejenigen nativ (Sie eine regex Bibliothek benötigen würde - siehe here)
*** Smasher festgestellt (D2006 +) Delimiter/Text mit Trennzeichen, die aussehen würde, so etwas wie diese:
MyStringList.Delimiter := ' ';
MyStringList.DelimitedText := oldString;
Result := MyStringList.Values['email'];
Warum downvote? Dies ist eine gültige Frage IMHO. – jpfollenius
yeah, aber Sie könnten gerade nach E-Mail-Wort gesucht haben, überspringen Sie das '=', loop out jedes Zeichen, bis Sie das @ ... – Skuta
Nein, weil 'E-Mail' überall auftreten kann - in einem ehemaligen Wert, in einem ehemaligen Name der Eigenschaft ... – jpfollenius