正規表現には何を使ってますか?

文字列の修正が多いソフトでは手放せない正規表現。

DocuWorksのファイルからファイル内容を読み、それをファイル名にするなどの処理はDelphi標準の文字列関数では厳しいものがあります。

 

ということで今日は正規表現ユニットです。

 

まずは現在一番お気に入りの「TRegExpr」

ダウンロード> http://www.regexpstudio.com/

(以前は間違ってhttp://www2.big.or.jp/~osamu/Delphi/MyLibrary.htmにリンクしてしまっていました。2008/3/6修正)

 

TRegExprはなんといってもDLLなどが不要ということが一番のポイントです。
自分のソフトに組み込んでいけるので、Delphiの良さである「exeのみ」が守られます。

英語のソフトですが、日本語も問題ありません。
(何かあるのかもしれませんが、私の環境では現状問題なし)

このページでヘルプの和訳もしてくださっています。

 

procedure TForm1.ExecClick(Sender: TObject);
var
r: TRegExpr;
begin
r := TRegExpr.Create;
r.Expression := 'あ.*う';
if r.Exec(Memo1.Lines.Text) then
Edit1.Text := (r.Match[0]);
r.Free;
end;

 

これで「あいう」や「あかきくう」などを拾えます。

べんりですな~

 

 

 

少し以前に使っていたのは

http://homepage1.nifty.com/bmonkey/delphi/delphi.html

にある「正規表現を使った文字列探索/操作コンポーネント集」

これも大変優れていて、AWK文法なども解釈してくれるコンポーネントが入っています。

ただ上記ページ下部にある「既知のバグ」に微妙なものが含まれており、現在は乗り換えてしまった次第です。

 

 

またMLのまとめで有名なhttp://www2.big.or.jp/~osamu/Delphi/MyLibrary.htmにはBRegExpというDLLを使用するユニットがあります。

DLLが必要なこと、関数名に私の頭がなじめない(;^^ ということであまり使いませんでした。