正規表現エンジン
正規表現エンジンに、従来の Boost.Regex に加えて、Onigmo (鬼雲) が選択できるようになりました。正規表現エンジンに Onigmo を選択すると、p{Han} (漢字)、p{Hiragana} (ひらがな)、p{Katakana} (カタカナ) といったより多くの文字種を使用できるようになります。Onigmo (鬼雲) の正規表現構文について詳しくは、https://github.com/k-takata/Onigmo/blob/master/doc/RE.ja および、Unicode Properties https://github.com/k-takata/Onigmo/blob/master/doc/UnicodeProps.txt をご覧ください。
測定結果例
一部の正規表現を使った検索、置換、フィルターの動作では、Boost.Regex に比べて Onigmo の方が大幅に速くなることがある一方、逆に Boost.Regex の方が速い場合もあります。今後の最適化などにより、測定結果が変わる可能性もありますので、あくまでも参考までにご覧ください。
正規表現 | Boost.Regex | Onigmo | |
肯定後読み | (?<=a)b | 10.23 秒 | 3.94 秒 |
否定後読み | (?<!a)b | 14.77 秒 | 4.01 秒 |
肯定先読み | a(?=b) | 4.02 秒 | 4.04 秒 |
否定先読み | a(?!b) | 8.48 秒 | 4.23 秒 |
文字の範囲 | [a-c] | 14.08 秒 | 5.73 秒 |
選択 | john|jack|james | 3.22 秒 | 3.80 秒 |
行頭 | ^”a | 3.50 秒 | 3.61 秒 |
* 340 MB, 192 万行のファイルから、大文字と小文字を区別しないでフィルターを実行するのに要した時間、スレッド数 4。
Windows 10 (64-bit) Core i7-4790 16GB RAM
CRとLFを区別する
従来は、検索、置換時、「CR+LF」、「CRのみ」、「LFのみ」の 3 種類の改行方法をすべて、n で表していましたが、本バージョンからは、CRとLFを区別して検索、置換できるようになりました。これにより、「CRのみ」、「LFのみ」、または「CR+LF」を検索したり、異なる種類の改行への変換をエスケープ シーケンスまたは正規表現を使用して置換できるようになりました。
[CRとLFを区別する] オプションがチェックされていない場合に、検索文字列に r (CR) が含まれている場合、「検索文字列は CR を含んでいます。[CRとLFを区別する] オプションを有効にしますか?」というメッセージが表示されるようになりました。
その他の機能
新機能
- 正規表現を使用時、文書の最終行が空の場合、最終行に一致しないようになりました。
新しい設定
- [カスタマイズ] ダイアログ ボックスの [検索] タブに [既定の正規表現エンジン] ドロップ ダウン リスト ボックスが追加されました。
- [検索]、[置換] ダイアログ ボックスの [カスタマイズ] ボタンが [高度] ボタンに変わりました。[高度] ダイアログ ボックスでは、より多くのオプションが追加されました。
- [検索] ツール バーに [高度] ボタンが追加されました。
- [スタート ウィンドウのカスタマイズ] ダイアログ ボックスに、[新規文書で↓キーを押すとスタート ウィンドウを表示する] チェック ボックスが追加されました。
新しいコマンド
- 高度 (検索ツール バー)
プラグインの新機能
- プロジェクト プラグインのシンボル一覧で右クリックして表示されるメニューに [すべて縮小] と [すべて展開] コマンドが追加されました。
プラグイン API の新機能
- EE_FIND_REPLACE メッセージが追加されました。
- Editor_FindReplace、Editor_FindInFiles、Editor_ReplaceInFiles インライン関数が追加されました。
- FIND_REPLACE_INFO、GREP_INFO_EX、MATCH_REGEX_INFO_EX、FIND_REGEX_INFO_EX 構造体が追加されました。
マクロの新機能
- Selection オブジェクトの Find メソッド、Replace メソッドの nFlags パラメータに、eeFindMatchDotNL フラグが追加され、nExFlags パラメータに、eeExFindRegexBoost、eeExFindRegexOnigmo、eeExFindSeparateCRLF フラグが追加されました。
謝辞
素晴らしい正規表現エンジンを作成された K. Kosako氏 (Oniguruma)、K. Takata氏 (Onigmo) に感謝いたします。