1

最近 RFC 文書を読みましたが、使用されている正規表現演算子が一般的に知られているものと一致しないことに気付きました。例えば:

date-time = [ day-of-week "," ] date time [CFWS]
year = (FWS 4*DIGIT FWS) / obs-year

角かっこは、その中の複数の文字のうちの 1 つだけに一致することを意味します。しかし、RFC では、彼らがそれを「オプション」と解釈していることがわかります。アスタリスクと同じで、前のトークンが 0 回以上発生することを示します。例では

4*DIGIT

これは、DIGIT トークンが 4 回出現することを意味します。

RFC ドキュメントの正規表現演算子をどのように解釈すればよいですか? それらの指定を説明するドキュメントはありますか?

4

1 に答える 1

2

あなたが見ているドキュメント(私は信じています)、RFC 2822は次のように述べています:

1.2.2. 構文表記

この標準は、メッセージの構文の正式な定義のために [RFC2234] で指定された Augmented Backus-Naur Form (ABNF) 表記法を使用します。

したがって、構文はRFC 2234で定義されており、正規表現ではありません。

引用したブロックに固有のいくつかのセクション:

3.5 シーケンスグループ

括弧で囲まれた要素は、内容が STRICTLY ORDERED である単一の要素として扱われます。

3.6 可変繰り返し

要素の前にある演算子「*」は繰り返しを示します。完全な形式は次のとおりです。

   <a>*<b>element

ここで、<a> と <b> はオプションの 10 進数値であり、要素が少なくとも <a> 個、最大で <b> 回出現することを示します。

3.8 オプションのシーケンス

角かっこは、オプションの要素シーケンスを囲みます。

于 2015-11-11T16:39:50.117 に答える