国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Python中使用SimpleParse模塊進行解析的教程

2019-11-25 17:46:16
字體:
來源:轉載
供稿:網友

與大多數程序員一樣,我經常需要標識存在于文本文檔中的部件和結構,這些文檔包括:日志文件、配置文件、分隔的數據以及格式更自由的(但還是半結構化的)報表格式。所有這些文檔都擁有它們自己的“小語言”,用于規定什么能夠出現在文檔內。

我編寫處理這些非正式解析任務的程序的方法總是有點象大雜燴,其中包括定制狀態機、正則表達式以及上下文驅動的字符串測試。這些程序中的模式大概總是這樣:“讀一些文本,弄清是否可以用它來做些什么,然后可能再多讀一些文本,一直嘗試下去。”

各種形式的解析器將文檔中部件和結構的描述提煉成簡明、清晰和 說明性的規則,該規則規定了如何標識文檔的組成部分。這里,說明性方面是最引人注目的。我所有的舊的特別的解析器都采用了這種風格:讀一些字符、作決定、累加一些變量、清空、重復。正如本專欄關于函數型編程的部分文章中所評述的,程序流的方法風格相對來說容易出錯并且難以維護。

正式解析器幾乎總是使用擴展巴科斯范式(Extended Backus-Naur Form(EBNF))上的變體來描述它們所描述語言的“語法”。我們在這里研究的工具是這樣做的,流行的編譯器開發工具 YACC(及其變體)也是這樣做的。基本上,EBNF 語法對您可能在文檔中找到的 部件賦予名稱;另外,經常將較小的部件組成較大的部件。由運算符

主站蜘蛛池模板: 白河县| 灌南县| 历史| 黄龙县| 南康市| 杨浦区| 文安县| 千阳县| 浮梁县| 宜阳县| 高要市| 秦皇岛市| 安仁县| 缙云县| 德清县| 周宁县| 营口市| 泰安市| 三门县| 库尔勒市| 舟曲县| 仙桃市| 奈曼旗| 宁远县| 大埔区| 临猗县| 涟水县| 株洲县| 喜德县| 新绛县| 邹城市| 玉林市| 新野县| 湘潭县| 宿州市| 将乐县| 连平县| 从化市| 桐城市| 灵石县| 克山县|