增强型巴科斯范式ABNF
RFC2234 定义了增加型巴科斯范式(ABNF)。近年来在Internet的定义中 ABNF 被广泛使用。ABNF 做了更多的改进。增强型巴科斯-瑙尔范式(ABNF)基于了巴科斯-瑙尔范式(BNF),但由它自己的语法和推导规则构成。这种元语言的发起原则是描述作为通信协议(双向规范)的语言的形式系统。它建档于 RFC 4234 中通常充当 IETF 通信协议的定义语言。

4.1. 推导规则
ABNF 规定是一组推导规则,写为:

规则 = 定义 ; 注释 CR LF
说明:

这里的规则是大小写敏感的非终结符,定义是由定义这个规则的符号序列、一个文档注释组成,并结束于回车换行。
规则名字是大小写不敏感的: , , 都提及同一个规则。规则名字由开始于一个字母的字母、数字和连字符组成。不要求用尖括号(“<”, “>”) (如 BNF 那样)包围规则名字。但是它们可以用来界定规则名字,比如在冗文中识别出规则名字的时候。ABNF 使用 7-位 ASCII 编码,在 8-位域中把高位置零。
终结符由一个或多个数值字符指定。数值字符可以指定为跟随着基数(b = 二进制, d = 十进制, x = 十六进制)的一个百分号“%”,随后是这个数值,或数值的串联(用“.” 来指示)。例如回车可以指定为十进制的 %d13 或十六进制的 %x0D。回车换行可以指定为 %d13.10。
文字正文通过使用包围在引号(")中字符串来指定。这些字符串是大小写不敏感的,使用的字符集是 US-ASCII。所以字符串“abc”将匹配“abc”, “Abc”, “aBc”, “abC”, “ABc”, “AbC”, “aBC” 和 “ABC”。对于大小写敏感匹配,必须定义明确的字符: 要匹配 “aBc” 定义将是 %d97 %d66 %d99。
4.2. 操作符
空白被用来分隔定义的各个元素: 要使空格被识别为分割符则必须明确的包含它。

4.3. 串联
规则1 规则2
规则可以通过列出一序列的规则名字来定义。

示例:
要匹配字符串“aba”可以使用下列规则:

fu = %x61; a
bar = %x62; b
mumble = fu bar fu
4.4. 选择
规则1 / 规则2
规则可以通过用反斜杠(“/”)分隔的多选一规则来定义。

示例:
要接受规则 或规则 可构造如下规则:

fubar = fu / bar
4.5. 递增选择
规则1 =/ 规则2
可以通过使用在规则名字和定义之间的“=/”来向一个规则增加补充选择。

示例:
规则

ruleset = alt1 / alt2 / alt3 / alt4 / alt5
等价于

ruleset = alt1 / alt2
ruleset =/ alt3
ruleset =/ alt4 / alt5
4.6. 值范围
%c##-##
数值范围可以通过使用连字符(“-”)来指定。

示例:
规则

OCTAL = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7"
等价于

OCTAL = %x30-37
4.7. 序列分组
(规则1 规则2)
元素可以放置在圆括号中来组合定义中的规则。

示例:
要匹配“elem fubar snafu”或“elem tarfu snafu”可以构造下列规则:

group = elem (fubar / tarfu) snafu
要匹配“elem fubar”或“tarfu snafu”可以构造下列规则:

group = elem fubar / tarfu snafu
group = (elem fubar) / (tarfu snafu)
4.8. 可变重复
n*m规则
要指示一个元素的重复可以使用形式 *元素。可选的 给出要包括的元素的最小数目,缺省为 0。可选的 给出要包括的元素的最大数目,缺省为无穷。
对零或多个元素使用 *元素,对一或多个元素使用 1*元素,对二或三个元素使用 2*3元素。

4.9. 特定重复
n规则
要指示明确数目的元素可使用形式
元素,它等价于 *元素。
使用 2DIGIT 得到两个数字,使用 3DIGIT 得到三个数字。(DIGIT 在下面的核心规则中定义)。

4.10. 可选序列
[规则]
示例:
要指示可选元素下列构造是等价的:

[fubar snafu]
*1(fubar snafu)
0*1(fubar snafu)
4.11. 注释
; 注释
分号(“;”)开始一个注释并持续到此行的结束。

4.12. 操作符优先级
上述操作符有从最紧绑定(binding)到最松绑定的给定优先级:

字符串,名字形成(formation)
注释
值范围
重复
分组,可选
串联
选择
与串联一起使用选择操作符可以造成混淆,建议使用分组来做明确串联分组。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 多年来的云南当地官员的腐败现象,不但破坏党和人民群众的生态关系,同时腐败官员更多关注个人利益谋取,为官成了经商,基础产业的基础生态建设和维护必然忽视,甚至为了个
  • 康康我现在的变化,都是原生态噢~ 感叹:牙齿矫正才是最好的变美神器!#写字楼里共勉一起长跑[超话]##儿童节最好的礼物# 三年前的儿童节我在公号(lydiali
  • 为应对市场冲击带来的影响,6月是汽车销售的重要节点,举办“西藏汽工贸端午节大型车展” 以及专业、细致的展会服务,打造一届品质化的汽车盛会。第一次发现还能有公务舱
  • 「牙友案例分享」小仙女们任何正畸问题、医院医生建议、整牙活动查询都可以找我,免费帮助准备矫正的仙女 [吃瓜][吃瓜]牙齿症状:门牙暴牙,嘴唇太厚了 [心][心
  • 起初,她的主要精力在欧亚西部(欧洲、北亚)早期人群演化领域,并取得了一系列突破性成果,比如破译世界最古老的现代人基因组,提出早期现代人进入亚洲并非仅有单一的南部
  • #浪浪钉[超话]#来感慨一波,我最近三次时间蛮充裕的,不像之前那样嗑的很疯了,但是总会在空余时间看看他们,新的活动我落下挺多没补,就靠随缘刷到什么算什么,好像我
  • ?接上条抖音390万+粉丝的美妆达人他的姑姑是蜗蜗代理商他认可的产品绝对是有够铁好的品质[赞]蜗蜗面膜以蚕丝为面膜布18种氨基酸,是珍珠粉的10倍‼️茶多酚成分
  • #吴亦凡 包场和女生看电影#网拍真的不错哟[心][心][心]我大二接触的,现在大四了,会计学生党一枚,如果不好,我也不会坚持这么久的我这个人比较懒,不想出去找
  • 其实,如果我们的选择是正确的,就算得到失败的经验,也不是坏事,反而是提升自己的契机!从2005年到现在“绿水青山就是金山银山”理念深入每个人的心中,妇孺皆知,作
  • ”想和你交换歌单想念童话故事给你听想看你突然大笑想收藏你所有的秘密想把樱花摘下来放在你手心想挠挠你的脖子看你会不会痒痒想收藏一绺你留长的头发想你拿出你童年的照片
  • 不同类型的女人在爱情中的诉求是不一样的。怎么挽回女朋友的第二个绝招是学会分析女友的心理。
  • ▲  国旗护卫队仪仗队对新队员的寄语:有几句话想对新队员说,可能现在你们还不知道你们所肩负的是什么,老实说其实我也不知道,但是我知道在不远的将来,国旗护卫队一定
  • 如果这些也做不到,那么喝一杯蜂蜜水、吃几粒花生米,或者吃几块饼干、喝一杯酸[好爱哦]#刘烨助理#潮玩手办 |《鸭力の喵》世界名画 盲盒手办##IP # 作者:三
  • 我伤心只是短暂性的,从晚上九点到现在十一点,我看开了,有趣的人才配和我做朋友做知音做挚友。收藏一下五月最末尾的网易云首页 充满了我的工作和我的爱有时候很庆幸自己
  • #带牙套的郑州医院好/福州正畸贴吧/北京牙齿矫正特价/北京带牙套好吗/在北京做二次矫正哪家好等各种牙齿矫正疑问或者求推荐都可以来问我# #北京上海广州郑州隐
  • "韩公问原因,邵康节说:"今日中午,应该还有一位骑白马穿绿衣的少年来拜见你,你虽然病了,也要见见他,因为此人将来会负责修史,必将为你写传记。
  • 经常生病 vs 不生病,谁的免疫力更强? 看着家里那个动不动就病、一病老不好的孩子,你会不会抱怨:唉,这个免疫力…… 免疫力,即通常所说“抵抗力”,是机体抵
  • 里面很多画面靓到绝一绝 曲调台词妆容武指画面每一幅影相都有赞冇弹 尤其白素贞同仙家小鹿子和小鹤子那一场争夺灵芝的打斗场面 曲韵音律武打动态 演员之间的表演 入木
  • 大连地铁五号线最大单体设备——首台自动电扶梯进场5月30日晚9点,由中国中铁电气化局承建的大连地铁5号线15标项目最大单体设备——首台自动电扶梯运抵桃源车站,标
  • 如果您愿意,将超过95%的人,成为那5%,甚至是0.5%的顶尖人物!当您很认真的读完这篇文章后,有可能您的婚姻就像您的事业业绩倍增,命运从此改变。95%以上的人