文字列の修正が多いソフトでは手放せない正規表現。
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が必要なこと、関数名に私の頭がなじめない(;^^ ということであまり使いませんでした。