Skip to content

make bregonig.dll "Onigmo" regular expression available from C#.

License

Notifications You must be signed in to change notification settings

hnx8/BregonigDotNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BregonigDotNet

This is the source code to make bregonig.dll "Onigmo" regular expression available from C#.

C#からbregonig.dllによる鬼雲の正規表現を利用可能にするためのソースコードです。
.NET Framework標準の正規表現(System.Text.RegularExpressions)では提供されていない高度な正規表現が利用できるようになります。

VisualStudioのC#プロジェクトへの導入手順

bregonig.dllの公式サイト http://k-takata.o.oo7.jp/mysoft/bregonig.html より、 最新バージョン(もしくはVer.3以降の任意のバージョン)のbregonigを入手してください。

BregonigRegex.cs をC#のプロジェクトに追加してください。
またbregonig.dllをプロジェクトに含め、出力ディレクトリにコピー「する」設定にしてください。 (あるいは、binフォルダに直接bregonig.dllを配置してください)

使い方

sample/Program.cs を参照ください。
基本的には.NET Framework標準のRegexクラスと同じようなメソッド/プロパティで操作できます。
ただし以下の点は仕様が異なります。

  • Regexオブジェクトをインスタンス化して使用する際は要Disposeです。usingステートメントを使うのが無難です。
  • Match.Success/Group.Successプロパティはありません。 マッチしなかった場合にはSuccess==falseのオブジェクトではなくnullが返されます。
  • 置換時の回数指定は、正規表現オプション文字列"g"の指定有無によります。 (gありならすべて置換、gなしなら1回のみ置換)

利用可能な正規表現/オプション指定はbregonig.dllの仕様通りです。
(Unicode版のBoMatch()/BoSubst()関数を呼び出すことで正規表現を実行しています)
詳細は、
検索パターン http://k-takata.o.oo7.jp/mysoft/bregonig.html#SCT-5.1
置換パターン http://k-takata.o.oo7.jp/mysoft/bregonig.html#SCT-5.3
オプション http://k-takata.o.oo7.jp/mysoft/bregonig.html#SCT-4.3.1-OPTIONS
を参照ください。

ライセンス

BregonigRegex.cs は MIT License です。
※bregonig.dllの配布にあたっては、bregonig.dllのライセンス http://k-takata.o.oo7.jp/mysoft/bregonig.html#SCT-9 / https://github.com/k-takata/bregonig#license をご確認ください。

組み込み使用例

私(hnx8)が作成・公開している TresGrep というgrepツールにもこのソースコードと同等の実装を組み込んでいます。
.NETFramework標準/鬼雲の正規表現を切り替えて検索することができます。挙動・パフォーマンスの比較にも使える・・・かもしれません。

謝辞

すばらしい正規表現エンジン/ライブラリを公開してくださっているOnigmo/bregonig.dll作者の k-takata 様( http://k-takata.o.oo7.jp/ https://github.com/k-takata/ )に感謝いたします。

About

make bregonig.dll "Onigmo" regular expression available from C#.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages