可爱的 Python: 使用 SimpleParse 模块进行解析
2008-11-13 13:16:18 来源:WEB开发网智能 ASCII 的 Python regexs
# [module] names
re_mods =
r""'([(s'/">]|^)[(.*?)]([<s.),:;'"?!/-])"""
# *strongly emphasize* words
re_strong =
r""'([(s'/"]|^)*(.*?)*([s.),:;'"?!/-])"""
# -emphasize- words
re_emph =
r""'([(s'/"]|^)-(.*?)-([s.),:;'"?!/])"""
# _Book Title_ citations
re_title =
r""'([(s'/"]|^)_(.*?)_([s.),:;'"?!/-])"""
# 'Function()" names
re_funcs =
r""'([(s/"]|^)'(.*?)'([s.),:;"?!/-])"""
如果您发现或发明了该语言的某种经过微小更新的变体,将它和 EBNF 语法一起使用要比和那些正则表达式一起使用简单得多。此外,通常使用 mxTextTools 执行模式操作甚至更快些。
生成和使用标记列表
对于样本程序,我们将实际语法放置在一个单独的文件中。对于大多数用途而言,这种组织比较好,便于使用。通常,更改语法和更改应用程序逻辑是不同种类的任务;这些文件反映了这一点。但是我们对语法所做的全部处理就是将它作为一个字符串传递给 SimpleParse 函数,因此我们大体上可以将它包括到主应用程序中(或者甚至以某种方式动态生成它)。
更多精彩
赞助商链接