« CryptoAPI and CNG for Delphi | トップページ | Delphiで正規表現(NSRegularExpression) »

2013年11月 4日 (月)

Delphiで正規表現(VBScript)

Delphiで正規表現とか今さら感がありますが・・

Delphiで正規表現というと、新しいものではDelphi XEでPCREを使った正規表現が使えるようになり、また、日本人でネットでDelphiのライブラリ等を公開してる人はほぼ全滅してて、その中でも公開している希望の星のSkRegEx があります(後、もちろん鬼車も) が、今まで自分は正規表現が必要な時は、だいたい、 ライセンスの問題に煩わされないVBScriptのRegExpオブジェクトを使ってきました。

で、今回、また、正規表現を使う必要があり、また、VBScriptのRegExpオブジェクトを使うつもりですが、せっかくなので、Delphi XEで導入された.NETライクな正規表現ライブラリ風に使えるように、脱線してRegularExpressions.pasをパクってみました。

System.RegularExpressions.VBScript.pasです。

ダウンロードはSkyDriveから。使用は各自の責任で・・



ちなみに、ラップしたVBScript.RegExpオブジェクトが貧弱なので、一部の機能はサポートしていません。詳しくは同梱のreadme.txtを・・また、ラップしたVBScript.RegExpはCOMオブジェクトなので、使用する前にCoInitialize(Ex)などで初期化してださい(メインスレッド以外で使う場合)。

Delphi XE以降が必要です。

後、更に脱線してOSX/iOS?向けにCocoaのNSRegularExpression をラップしたSystem.RegularExpressions.NSRegularExpressesion.pasも作成中なのですが、間に合わなかったので、次回・・・?dash

まぁ、特定のプラットフォーム向けのソフトウェアを作成する場合はこのように特定のプラットフォームに依存したエンジンを使ってもいいですが、クロスプラットフォーム向けのソフトウェアを作成する時に、プラットフォーム毎に正規表現エンジンを切り替えると、エンジン毎の正規表現の文法も違うことですし、おとなしく、エンジンがクロスプラットフォームなPCREを使っているDelphi標準のを使うか、Pure PascalなSkRegExを使った方が身のためですねdashdash

ここまでくると、次は、鬼車をラップして同じことをやりたくなってきたが、誰か代わりにつくってdashdash

ちなみに、Delphiの正規表現で使われてるPCREですが、去年のバージョン当たりから、UTF-16のエンコーディングに対応し始めて、これを使えば現状のUTF-8<->UTF-16の変換オーバーヘッドがなくなりますねup

« CryptoAPI and CNG for Delphi | トップページ | Delphiで正規表現(NSRegularExpression) »

Delphi」カテゴリの記事

Windows」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1497665/53799523

この記事へのトラックバック一覧です: Delphiで正規表現(VBScript):

« CryptoAPI and CNG for Delphi | トップページ | Delphiで正規表現(NSRegularExpression) »

自作ソフトウェア

無料ブログはココログ

メモ