GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Longest-Match.html ・ emacs-doc.conao3.com

35.5 正規表現マッチを検索する最長マッチ

通常の正規表現関数は、「\|」や繰り返し構文を処理するために必要に応じてバックトラッキングを行いますが、これを行うのはいずれかのマッチが見つかるまでです。その後、関数は成功し、最初に見つかったマッチを報告します。

本節では、正規表現マッチングにおいてPOSIX標準で規定されている完全なバックトラッキングを実行する代替検索関数について説明します。これらの関数は、あらゆる可能性を試してすべてのマッチが見つかるまでバックトラッキングを継続するため、POSIXの規定通りに最長のマッチを報告することができます。この方式は処理速度が大幅に低下するため、本当に最長のマッチが必要な場合にのみこれらの関数を使用してください。

名称にかかわらず、POSIXの検索・マッチ関数はPOSIX正規表現ではなく、Emacsの正規表現を使用しています。EmacsとPOSIX正規表現の比較を参照してください。また、これらの関数は非貪欲繰り返し演算子を適切にサポートしていません(非貪欲を参照)。これは、POSIXのバックトラッキングが非貪欲繰り返しのセマンティクスと競合するためです。

コマンド: posix-search-forward regexp &optional limit noerror count

これは re-search-forward と同様ですが、正規表現マッチングにおいて POSIX 標準で規定されている完全なバックトラッキングを実行します。

コマンド: posix-search-backward regexp &optional limit noerror count

これは re-search-backward と同様ですが、正規表現マッチングにおいて POSIX 標準で規定されている完全なバックトラッキングを実行します。

関数: posix-looking-at regexp &optional inhibit-modify

これは looking-at と同様ですが、正規表現マッチングにおいて POSIX 標準で規定されている完全なバックトラッキングを実行します。

関数: posix-string-match regexp string &optional start inhibit-modify

これは string-match と同様ですが、正規表現マッチングにおいて POSIX 標準で規定されている完全なバックトラッキングを実行します。