栏目导航
eg娱乐
娱乐资讯
当前位置:eg娱乐 > 娱乐资讯 >
增强的Backus-Naur形式_
浏览:108 发布日期:2018-10-12
ABNF规范是一组派生规则,写成 串联使用替代运算符可能会造成混淆,建议使用分组来制作显式串联组。 %C##-## nRule ;评论 使用这种线性空白空间规则允许只包含空白的行在邮件标题中不再合法,并且在其他上下文中导致了互操作性问题。定义邮件标题时请勿使用,并在其他情况下谨慎使用。 分号(;)开始一个注释,直到行尾。 规则 Rule1 Rule2 为了表示明确数量的元素,使用元素的形式,并且相当于 * 元素。 在增强的Backus-Naur表单(ABNF)页面中给出的邮政地址示例可以如下指定: 终端由一个或多个数字字符指定。 规则1 /规则2 规则可以通过列出一系列规则名称来定义。 为了匹配“elem fubar snafu”或“elem tarfu snafu”,可以构建以下规则: (Rule1 Rule2) 使用2DIGIT获取两位数字,使用3DIGIT获取三位数字。 (DIGIT在“核心规则”中定义如下,另请参阅下面示例中的邮政编码。) 规则名称周围不需要角括号(<,>)(因为它们在BNF中)。但是,它们可能被用于在散文中用来分隔规则名称以识别规则名称。 元素可以放在括号中以在定义中对规则进行分组。 相当于 规则名称不区分大小写:都引用相同的规则。规则名称由一个字母,数字和连字符组成。 一条规则可能由固定线(/)分隔的一系列备选规则定义。 对于零个或多个元素使用*元素,对于零个或一个元素使用* 1element,对一个或多个元素使用1 *元素,对于两个或三个元素使用2 * 3element,参见参考资料。正则表达式e *,e?,e 和e {2,3}。 白色空间用于分隔定义的元素;为了将空间识别为分隔符,必须明确包含它。单个空白字符的显式引用是WSP(线性空白),LWSP是用于零个或多个空白字符并允许换行。 RFC5234中的LWSP定义存在争议[4],因为在两个字段之间至少需要一个空格字符来形成分隔符。 要接受规则fu或规则栏,可以构建以下规则: 在计算机科学中,增强的Backus-Naur形式(ABNF)是基于Backus-Naur形式(BNF)的元语言,但由它自己的语法和派生规则组成。 ABNF的动机原则是描述一种用作双向通信协议的正式语言系统。它是由互联网标准68(“STD 68”,类型案例)定义的,其截至2010年12月[更新]为RFC 5234,并且通常用作IETF通信协议的定义语言。[1] [2] 可以通过使用连字符( - )来指定一个数值范围。 通过在规则名称和定义之间使用=,可以将其他选项添加到规则中。 字符文本通过使用用引号(“)括起来的字符串来指定,这些字符串不区分大小写,所使用的字符集是(US-)ASCII。因此,字符串”abc“将与”abc“匹配, “abc”,“aBc”,“abC”,“abc”,“abc”,“aBC”和“ABC”。RFC 7405增加了区分大小写字符串的语法:%s“aBc”只会匹配“aBc “在此之前,区分大小写的字符串只能通过列出单个字符来指定:要匹配”aBc“,定义应该是%d97.66.99。字符串也可以显式指定为不区分大小写,我的前缀。 要匹配字符串“aba”,可以使用以下规则: 为了匹配“elem fubar”或“tarfu snafu”,可以构建以下规则: 为了表示元素的重复,使用 * 元素的形式。可选的给出了最小数量的元素(默认值为0)。可选的给出要包含的最大元素数量(默认为无穷大)。 [规则] 为了表示可选元素,以下结构是等效的: 相当于 数字字符可以指定为百分号%,后跟基数(b =二进制,d =十进制和x =十六进制),后跟数值或串联值(用。表示)。例如,回车由十进制%d13或十六进制%x0D指定。回车后跟一个换行可以用连接指定为%d13.10。 RFC 5234取代RFC 4234(取代了RFC 2234和RFC 733)[3]。 RFC 7405对其进行了更新,并添加了用于指定区分大小写的字符串文字的语法。 N * nRule 定义是左对齐的。当需要多行时(为了便于阅读),连续行由空格缩进。 核心规则在ABNF标准中定义。 以下运算符具有从最紧密绑定到最松绑定的优先级: Rule1 = / Rule2 RFC 5234将LWSP的定义与警告结合起来,如下所示: 规则 在规则是不区分大小写的非终结符的情况下,定义由定义规则的符号序列,文档注释,以回车换行结束。