📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,RegExpr, StdCtrls;
type
TForm1 = class(TForm)
edtExpression: TEdit;
edtInput: TEdit;
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ExprTest(AExpression,AInput:string);
end;
var
Form1: TForm1;
RegExpr:TRegExpr;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ExprTest(edtExpression.Text,edtInput.Text);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegExpr:=TRegExpr.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(RegExpr);
end;
procedure TForm1.ExprTest(AExpression, AInput: string);
var
I:integer;
begin
//正则表达式 http://www\.mynet\.com/register\.asp\?id=(\d+)&name=(\w+)
//输入字符串 http://www.mynet.com/register.asp?id=999&name=demo_ds
if AExpression='' then
begin
Application.MessageBox(PAnsiChar('正则表达式不能为空'),
PAnsiChar('提示'));
Exit;
end;
if AInput='' then
begin
Application.MessageBox(PAnsiChar('输入字符串不能为空'),
PAnsiChar('提示'));
Exit;
end;
Memo1.Clear;
Memo1.Lines.Add('匹配结果:');
RegExpr.Expression :=AExpression;
RegExpr.InputString :=AInput;
if RegExpr.Exec then
begin
Memo1.Lines.Add(Format('输入字符串为"%s"',[RegExpr.Match[0]]));
Memo1.Lines.Add(Format('匹配子项数目: %d 个',[RegExpr.SubExprMatchCount]));
for i := 1 to RegExpr.SubExprMatchCount do
begin
Memo1.Lines.Add(format('Match[%d]=',[I])+ RegExpr.Match[I]);
end;
Memo1.Lines.Add('匹配成功!');
end
else
Memo1.Lines.Add('匹配失败!');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -