TGroupとTRegExを利用した文字列処理 - Delphi XE
Groupを使った正規表現文字列処理をしてみましょう。
こちらで作成したフォームにボタンを更にひとつ追加します。
Button2のClickイベントに下記コードを記述します。
procedure TForm1.Button2Click(Sender: TObject);
var
reg:TRegEx;
match:TMatch;
group:TGroup;
begin
reg:=TRegEx.Create('val\((?<value?>.*?)\)');
match:=reg.Match(Edit1.Text);
group:=match.Groups.Item['value'];
Edit2.Text:= group.Value;
end;
プログラムを実行し、上部のテキストボックス(Edit1)に "TTC val(240)"と入力し、Button2をクリックした結果が下図になります。valの後ろの括弧で囲まれた中の内容を抜き出して下部のテキストボックス(Edit2)に表示しています。
プログラムのコード
Unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RegularExpressions, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
reg:TRegEx;
match:TMatch;
begin
reg:=TRegEx.Create('delphi');
match:=reg.Match(Edit1.Text);
Edit2.Text:= IntToStr(match.Index);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
reg:TRegEx;
match:TMatch;
group:TGroup;
begin
reg:=TRegEx.Create('val\((?<value?>.*?)\)');
match:=reg.Match(Edit1.Text);
group:=match.Groups.Item['value'];
Edit2.Text:= group.Value;
end;
end.
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用