2

正規表現の真の力というタイトルのnikicによるこの素敵なブログ投稿に出くわしました。DEFINE アサーションを使用して、RFC 準拠の方法で電子メールに一致する正規表現を作成する彼の正規表現を見ました。名前付きキャプチャは素晴らしいですが、私が本当に疑問に思っているのは、DEFINE アサーションに関するドキュメントです。簡単な例:

/(?(DEFINE)(?<NUM>[0-9]))^(?&NUM)$/

Mastering Regular Expressionsの本をざっと検索しても、すぐに結果は得られませんでした。Googleは私を手ぶらで残し、イデオンを使用したオンラインでのテストが結果につながりました.DEFINEは、単語をFOOBARなどに置き換えることができないため、アサーションを定義するためのキーワードである可能性が最も高いです。;-) イデオン テストへのリンク:一致するものと一致しないもの

説明、検索キーワード、ヒント、またはいくつかの優れたドキュメントへのリンクは大歓迎です。前もって感謝します。:-)

4

1 に答える 1

3

(DEFINE)名前付きサブパターンを定義する方法として機能します。上記の例では、サブパターンを定義してNUMから使用してい(?&NUM)ます。nikic によるリンクされた例では、一連の名前付きサブパターンが互いに使用して定義されており、?&addr_spec.

お気づきのように、「define」という単語を検索するのは簡単ではありません。開始するための参照をいくつか見つけました。

于 2012-07-26T00:02:10.453 に答える