Next: , Previous: , Up: 検索とマッチング   [Contents][Index]


35.5 正規表現のマッチにたいする最長マッチの検索

通常の正規表現関数は、‘\|’や繰り返しの構文要素を処理するために必要なときだけバックトラッキングを行いますが、何らかのマッチが見つかるまでの間だけこれを継続します。そして成功した後に見つかった最初のマッチを報告します。

このセクションでは正規表現にたいしてPOSIX標準で指定された完全なバックトラッキングを処理する他の検索関数を説明します。これらはPOSIXが要求する最長マッチを報告できるようにすべての可能なマッチを試みて、すべてのマッチが見つかるまでバックトラッキングを継続します。これは非常に低速なので、本当に最長マッチが必要なときだけこれらの関数を使用してください。

名前とは裏腹にPOSIXの検索とマッチ関数は、POSIXではなくEmacsの正規表現を使用しています。Emacsの正規表現 vs POSIXの正規表現を参照してください。さらにこれらの正規表現は非欲張りな繰り返し演算子(non-greedyを参照)を正しくサポートしていません。これはPOSIXのバックトラッキングが非欲張りな繰り返しのセマンチックと競合するからです。

Command: posix-search-forward regexp &optional limit noerror count

これはre-search-forwardと似ているが、正規表現マッチングにたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。

Command: posix-search-backward regexp &optional limit noerror count

これはre-search-backwardと似ているが、正規表現マッチングにたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。

Function: posix-looking-at regexp &optional inhibit-modify

これはlooking-atと似ているが、正規表現マッチングにたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。

Function: posix-string-match regexp string &optional start inhibit-modify

これはstring-matchと似ているが、正規表現にたいしてPOSIX標準が指定する完全なバックトラッキングを行う点が異なる。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.