YYYY-MM-DD的正则表达式
procedure TForm1.Edit1Exit(Sender: TObject);
var
theDate:string;
reg : TperlRegex;
begin
theDate := Edit1.Text;
reg := TPerlRegEx.Create(self);
reg.Subject := theDate;
reg.RegEx := '^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$';
if reg.Match then Edit1.Text := theDate else Edit1.Text := '';
end;
var
theDate:string;
reg : TperlRegex;
begin
theDate := Edit1.Text;
reg := TPerlRegEx.Create(self);
reg.Subject := theDate;
reg.RegEx := '^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$';
if reg.Match then Edit1.Text := theDate else Edit1.Text := '';
end;
------