unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, RegularExpressions;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    function MyMatchEvaluator(const Match: TMatch): string; //TMatchEvaluator = function(const Match: TMatch): string of object;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  pattern = '[A-Z]+\d+';
  txt = 'AAA1 BBB2 AA11 BB22 A111 B222 AAAA';

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Text := TRegEx.Replace(txt, pattern, MyMatchEvaluator); //aaa1 bbb2 aa11 bb22 a111 b222 AAAA
end;

function TForm1.MyMatchEvaluator(const Match: TMatch): string;
begin
  Result := LowerCase(Match.Value);
end;

end.

posted on 2011-03-28 22:36  万一  阅读(3862)  评论(5编辑  收藏  举报