[論文レビュー] Derivative Based Extended Regular Expression Matching Supporting Intersection, Complement and Lookarounds
この論文は、交差、補集合、およびポジティブおよびネガティブなラックアラウンド(前方および後方)をサポートする、記号的導出に基づく正規表現エンジンを提示する。これにより、正確で効率的かつ意味論的に一貫した照合が可能になる。このアプローチは、照合集合における有効なブール代数を活用し、ブール再書き換え規則による最適化を可能にする。バックトラッキング手法による階乗的爆発が生じる問題に対して、従来のエンジンでは不可能であったことが示された。
Regular expressions are widely used in software. Various regular expression engines support different combinations of extensions to classical regular constructs such as Kleene star, concatenation, nondeterministic choice (union in terms of match semantics). The extensions include e.g. anchors, lookarounds, counters, backreferences. The properties of combinations of such extensions have been subject of active recent research. In the current paper we present a symbolic derivatives based approach to finding matches to regular expressions that, in addition to the classical regular constructs, also support complement, intersection and lookarounds (both negative and positive lookaheads and lookbacks). The theory of computing symbolic derivatives and determining nullability given an input string is presented that shows that such a combination of extensions yields a match semantics that corresponds to an effective Boolean algebra, which in turn opens up possibilities of applying various Boolean logic rewrite rules to optimize the search for matches. In addition to the theoretical framework we present an implementation of the combination of extensions to demonstrate the efficacy of the approach accompanied with practical examples.
研究の動機と目的
- 記号的導出フレームワーク内での交差、補集合、ラックアラウンドのサポートを含む正規表現エンジンの開発。
- これらの拡張の組み合わせが、ブール演算について閉じた照合意味論を形成し、有効なブール代数を構成することの証明。
- 従来のバックトラッキングまたは標準の非バックトラッキングエンジンでは不可能であった問題に対して、実用的で高性能な正規表現照合の実現。
- すべての文脈に依存するアンカー(例:単語境界)がラックアラウンドのみで表現可能であるという仮説の証明および実装。
- ブール再書き換え規則および効率的なキャッシュ技術による最適化の基盤の提供。
提案手法
- 論文は、.NET 7 の非バックトラッキング正規表現エンジンに記号的導出を拡張し、交差(&)、補集合(~)、およびラックアラウンド(?=, ?!, ?<=, ?<!)をサポートする。
- 正規表現エンジンの正しさと決定論的性質を保証する記号的導出に基づく理論的枠組みを導入する。
- 照合集合の意味論が有効なブール代数を形成することを示し、最適化のための体系的なブール再書き換え規則の適用を可能にする。
- 入力文字に対して正規表現の導出を計算し、照合位置と述語を追跡する導出ベースの評価エンジンを実装する。
- ラックアラウンドは、入力を消費せずに各位置で前方/後方条件を評価し、導出された述語を用いて照合の有効性を決定する。
- 改行文字などの不適切な文字を検出すると、述語(例:ψ で表される文字クラス)を保存・無効化するキャッシュ技術をラックアラウンドに適用する。

実験結果
リサーチクエスチョン
- RQ1交差、補集合、ラックアラウンドを記号的導出に基づく正規表現エンジンに意味的に統合できるか。この統合により、決定論的性質や性能が損なわれないか?
- RQ2これらの拡張の組み合わせが、ブール演算について閉じた照合意味論を形成し、有効なブール代数を構成するか?
- RQ3このような拡張されたエンジンは、バックトラッキングエンジンで階乗的爆発を引き起こす問題(例:任意の順序での照合部分文字列の特定)を解けるか?
- RQ4すべての文脈に依存するアンカー(例:単語境界、行アンカー)は、ラックアラウンドのみで表現可能であるか、先行研究の仮説通りか?
- RQ5ブール再書き換え規則およびキャッシュ技術は、複雑な拡張を伴う正規表現照合において、どれほど性能向上をもたらすか?
主な発見
- 拡張された正規表現エンジンは、.NET 7 のバックトラッキングおよび非バックトラッキングエンジンが階乗的爆発を引き起こす任意順序照合問題を効果的に処理できる。
- 拡張された正規表現システムの照合意味論は、有効なブール代数を形成し、ブール再書き換え規則による体系的な最適化を可能にする。
- すべての文脈に依存するアンカー(単語境界、行アンカーなど)は、ラックアラウンドのみで表現可能であり、形式的に証明および実装済みである。
- 短い文脈のラックアラウンド(例:^, $, \b)に対しては線形時間計算量を示し、長いラックアラウンド(例:(?<=a.*)b)は述語キャッシュにより二次的挙動を回避する最適化が可能である。
- 遅延照合(ラジオキシド)は、補集合と交差を用いて模倣可能であり、例:a[^b\n]*b または (a.*)&(~(.*b.*)b) により、遅延修飾子なしで同等の意味論を実現できる。
- 実装は .NET 7 の非バックトラッキングエンジンのバックエンドを再利用し、新しい演算子を追加することで、パフォーマンスと正しさを維持しながら、新たなユースケースを可能にした。

より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。