Delphi使用TRegEx正则表达式控件“检查电子邮件语法”的示例-正则表达式类
uses System.RegularExpressions; function CheckEmailAdress(const EmailAddress: string): Boolean; const EMAIL_REGEX = '^((?>[a-zA-Z\d!#$%&''*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])' + '[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)' + { } '(?>\.?[a-zA-Z\d!#$%&''*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]' + { } '{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$'; begin Result := TRegEx.IsMatch(EmailAddress, EMAIL_REGEX); end; procedure TForm1.btnCheckEmailSyntaxClick(Sender: TObject); var lEmailListArrayString: TArray<string>; lTextWithEmail : string; begin lEmailListArrayString := nil; // lTextWithEmail := 'email@provider.com;email@provider;email@provider.net;'; // the "last" will be "blank" // Memo1.Lines.Clear; // lEmailListArrayString := lTextWithEmail.Split([';'], TStringSplitOptions.ExcludeEmpty); // Memo1.Lines.Add(StringOfChar('-', 40)); Memo1.Lines.AddStrings(lEmailListArrayString); Memo1.Lines.Add('Emails counting = ' + Length(lEmailListArrayString).ToString); Memo1.Lines.Add(StringOfChar('-', 40)); // lTextWithEmail := ''; // for lTextWithEmail in lEmailListArrayString do begin if { (lTextWithEmail.Trim <> '') and } CheckEmailAdress(lTextWithEmail) then Memo1.Lines.Add('--> ' + lTextWithEmail + ', email syntax OK') else Memo1.Lines.Add('--> ' + lTextWithEmail + ', email syntax DONT OK'); end; end;
本实例颈椎枕采用了TRegEx - 正则表达式类

浙公网安备 33010602011771号