2015-11-11 73 views
1

我最近看了一個RFC文檔,我注意到,已經使用正則表達式運算符不匹配的俗稱。例如:RFC正則表達式運算符

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

方括號表示它只會匹配其中幾個字符中的一個。但在RFC中,我發現他們將其解釋爲「可選」。與星號,即表示前一令牌將出現零次或更多次相同的。在這個例子中,我們有

4*DIGIT 

這是不難猜測,這意味着4次DIGIT令牌的發生。

我應如何解讀RFC文檔regex操作符,是有描述他們指定的任何文件?

+1

FWIW,我不確定[正則表達式]標籤是否屬於這裏給出什麼樣的答案竟然可以,所以這是[上的元討論](http://meta.stackoverflow.com/questions/309996/should-i-edit-in-tags-for-the-right-topic)。如果你不知道那是什麼,也見(HTTP [什麼是「元」?]://計算器。com/help/whats-meta) –

回答

2

的文件(我相信)你看,RFC 2822,這樣說:

1.2.2。句法符號

本標準使用[RFC2234]中規定的增強的Backus-Naur格式(ABNF)表示法 來獲得 消息的語法的正式定義。

所以,是的,語法定義在RFC 2234,而不是正則表達式。

具體到塊幾節你引述:

3.5序列組用括號括起來

元素被視爲一個單一的元素, 其內容是嚴格有序。

3.6可變重複

操作符 「*」 在元件前面表示的重複。全 形式是:

<a>*<b>element 

其中<一個>和<b>是可選的十進制值,指示至少 <一個>和至多<b>發生元件的。

3.8可選序列

方括號包含一個可選元素序列:

+0

非常感謝,沒有注意到本文檔中的句法符號部分。 –