我试图分析如下所示的文件:MSH

[ PD1 ]

[{ ROL }]

[

{ ROL }

]

[

{

PR1

[{ ROL }]

}

]

[

{

IN1

[ IN2 ]

[{ IN3 }]

}

]

[ ACC ]

其中:3个字母数字代表一个段

[段]表示可选段

{SEGMENT}表示重复段

[{SEGMENT}]表示可选的重复段

以上任何段外形都可以在嵌套中组合在一起

可选([])和/或重复({})组。在

嵌套重复组的例子是上面代码中的第4-19行。在

理想的结果是这样的:

^{pr2}$

我已经阅读了SO和pyparsing wiki上的大多数pyparsing文章,包括四个fn.py示例和regexinverter。我相信我需要使用Infixnotation,但我不太明白如何使用它。在

到目前为止,我得到的是:lbrack = pp.Literal("[")

rbrack = pp.Literal("]")

lbrace = pp.Literal("{")

rbrace = pp.Literal("}")

segment = pp.Word(pp.alphanums,exact=3)

optsegment = lbrack + segment + rbrack

repsegment = lbrace + segment + rbrace

optrepsegment = lbrack + lbrace + segment + rbrace + rbrack

segments = (segment.setResultsName("RawSegment") |

optsegment.setResultsName("OptionalSegment") |

repsegment.setResultsName("RepeatingSegment") |

optrepsegment.setResultsName("OptionalRepeatingSegment"))

opt_group = pp.Group(lbrack + segments + rbrack)

rep_group = pp.Group(lbrace + segments + rbrace)

message = pp.Group(segments | opt_group | rep_group)

expr = pp.infixNotation(message,

[

('[', 2, pp.opAssoc.LEFT),

('{', 2, pp.opAssoc.LEFT),

('}', 1, pp.opAssoc.RIGHT),

(']', 1, pp.opAssoc.RIGHT),

])

msg = message.searchString(data)

for item in msg:

print(item)

我还没有敲出输出格式,我只是想在这一点上正确解析输出。在

python 大括号嵌套,分析嵌套的大括号/方括号组相关推荐

  1. 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法

    孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步的语音笔记朗读:https://www.ximalaya.com/keji/1 ...

  2. python读取json格式文件大量数据,以及python字典和列表嵌套用法详解

    1.Python读取JSON报错:JSONDecodeError:Extra data:line 2 column 1 错误原因: JSON数据中数据存在多行,在读取数据时,不能够单单用open(), ...

  3. python函数中的嵌套函数

    python函数中的嵌套函数 学习Python,请记住"在Python中一切皆是对象",当然函数本身也是对象 Python中一切皆是对象 这恐怕是学习Python最有用的一句话.想 ...

  4. Python中的If嵌套讲解(语法、实例、执行流程)

    If就是if条件语句,嵌套的意思可以理解为在生活当中有种玩具叫做俄罗斯套娃,这个套娃呢就是大的套娃里面有小的娃,小娃里面有更小的娃,就这样一层一层的套下去.在编程语言当中,if嵌套指代的意思是一个大的 ...

  5. python基础之函数嵌套定义

    博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏. ...

  6. 44. python的for循环嵌套

    44. python的for循环嵌套 文章目录 44. python的for循环嵌套 1. 什么是嵌套 2. for循环中嵌套有if条件判断语句 2.1 先创建一个奇数序列 2.2 判断一个数是否能被 ...

  7. #for循环嵌套分析

    标题:for循环嵌套分析

  8. qt布局嵌套_QDockWidget嵌套布局详解-实现Visual Studio布局

    概述 许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口. Qt的嵌套布局由QDockWidget完成,用Qt Creator拖 ...

  9. python文本字符分析、编写程序接收字符串_python 文本分析Python编程中字符串和列表的基本知识讲解...

    Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var ...

  10. python可视化来分析全国疫情

    很长一段时间在python下出图都是使用matplotlib,其好处就是应用比较广泛,文档很容易找,不过出的图微显丑陋.pyecharts 是百度的echarts基于python的实现,可以很方便的直 ...

最新文章

  1. python3笔记_python3基础笔记(一)
  2. WF4.0实战(一):文件审批流程
  3. HDU1559(二维树状数组)
  4. 某央企程序员炫耀:央企研发岗才是性价比天花板!955,不卷不裁,6险2金,500元单身公寓!...
  5. SFC扫描恢复系统文件
  6. IDEA报错Web server failed to start. Port 8080 was already in use的解决方法
  7. 自由自在意式手工冰淇淋的清凉之风已“冰”临城下
  8. 一 Struts2 开发流程
  9. SIGIR 2021 | 推荐系统中的自监督图表征学习
  10. 设计模式C++实现 ——观察者模式
  11. JQuery Datatables 显示行的附加信息
  12. rhce考试试题以及答案_搞懂这套五年级数学上册期末考试试题(含答案),考试不担心...
  13. 将字符串中的小写字母转换成大写字母 (信息学奥赛一本通-T1138)
  14. 黑猫警长 stl_如何使用当地警长保护您的信息
  15. linux mysql 主从数据库_Linux下安装MySQL及MySQL主从同步配置
  16. linux的functions之killproc函数详解
  17. limit mongodb 聚合_mongodb-$type、limit、skip、sort方法、索引、聚合
  18. java classpath 理解
  19. 赶紧收藏!不可多得的Instagram运营技巧
  20. 【算法竞赛学习笔记】弦图和区间图

热门文章

  1. 抽取MySQL数据成文件_MySql导入和抽取大数量级文件数据
  2. centos7搭建单机kafka,开启SASL/PLAIN加密,并使用kafka tool 登录
  3. html的网页主题标记是什么,html标记是什么
  4. vite报错 process is not defined
  5. 大规模海量并发难题的本质
  6. Solaris环境下使用snoop命令抓包
  7. android 格式化sd咔_安卓手机怎么格式化内存(sd卡)?安卓手机格式化方法大全
  8. 任正非:华为要做追上特斯拉的大乌龟
  9. noob_Noob的Three.js指南
  10. Asis CTF 2016 b00ks