最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

ABNF(巴克斯范式)语法总结--根据RFC5234

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-4 11:42:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ABNF是各类RFC中经常遇到的数据定义语法,在此把他的语法简单做个总结,所有内容均参照RFC5234的内容和结构。

1 规则定义

rule = definition ;comment
    一条语句以回车换行结束。其中rule为规则名,大小写不敏感;definition为规则的具体定义; ';'后作为注释


2 定义字符
语法:%<进制><具体数字>
<进制>有二进制,十进制,十六进制,分别表示为b,d,x;
例子:      CR=%d13
                CR=%x0D
也可以用空格或'.'连接多个字符:
                rulename    =  %d97 %d98 %d99
等价于     rulename    =  %d97.98.99
最终效果相当于"abc"


3. 定义字符串
字符串用双引号包括。
         command     =  "command string"
注意:字符串内的字符都是大小写不敏感的,所以如需要特别注明大小写,需要用上一条单独定义字符。


4. 各类操作符
(a) rule=rule1 rule2; 规则相加

         foo         =  %x61           ; a
         bar         =  %x62           ; b
         mumble      =  foo bar foo    ;mumble最终效果aba

(b) rule=rule1/rule2; 规则多选一

         mumble=foo/bar ; mumble可以等于foo或bar
         在实际使用中,'/'经常用'|'代替;

(c) rule1=/rule2; 相当于rule1=rule1/rule2;

(d) 用'-'定义多选范围
         DIGIT       =  %x30-39
         等价于DIGIT       =  %x30 / %x31 / %x32 / %x33 / %x34 / %x35 / %x36 /%x37 / %x38 / %x39

(e) 用()组合规则,在()内的规则。对()外的规则来说,()内的规则被当作单独的规则对待。
         (foo / bar) blat
         效果相当于 foo blat / bar blat

(f) 多次重复规则
    语法稍复杂,完整定义为<a>*<b>element,表示最少重复a次,最多重复b次element规则
    如<a>略去,表示最小0次;如<b>略去,表示做多无限次;如<a><b>都略去,表示最小0次,最多无限次。
         1*3CHAR ;表示最少1个,最多3个CHAR
         *3CHAR  ;最少0个,最多3个CHAR
         *CHAR   ;没有或任意多个CHAR

(g) 指定重复次数规则
    语法格式:n<element>,表示n次重复element规则
    如   4CHAR   ;表示CHAR重复4次

(h) 用[]表示可选规则
    语法[rule]
    如   mumble= foo [bar]; bar可选,mumble可以是foo或foobar

  操作符的优先级顺序(从高到低排列):
      规则名, 字符串或字符
      注释  ;
      多选范围  -
      多次重复或指定重复 * 或n<element>
      组合规则(), 可选规则[]
      规则相加: rule1 rule2
      多选一规则: /



楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-3 15:06

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表