WorkToolSmith

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

太田アベル

・ 更新 ・ 2分で読めます

当サイトの記事には一部に広告リンクが含まれます。

正規表現ユニットは標準ライブラリ「 System.Regularexpressions 」となりました。 下記情報は古いものです。

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

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;

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

べんりですな~

少し以前に使っていたのは「正規表現を使った文字列探索/操作コンポーネント集」です。

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

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

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

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

太田アベル

太田アベル

パソコンを7歳からいじり始めて40年。とにかくパソコンが好きです。気になった商品をほぼ自腹で買いまくってレビュー中!良かった点、悪かった点をズバズバ書きます。

𝕏 でフォロー プロフィールを見る

こちらもおすすめ