首页 > 编程 > Python > 正文

Python 中开发pattern的string模板(template) 实例详解

2019-11-25 16:16:15
字体:
来源:转载
供稿:网友

定制pattern的string模板(template) 详解

string.Template的pattern是一个正则表达式, 可以通过覆盖pattern属性, 定义新的正则表达式.

如: 使用新的定界符"{{", 把{{var}}作为变量语法.

代码:

# -*- coding: utf-8 -*-  ''''' Created on 2014.6.5  @author: Administrator  @edition : python 3.3.0, eclipse pydev '''  import string  t = string.Template('$var') print(t.pattern.pattern)  class MyTemplate(string.Template):   delimiter = '{{'   pattern = r'''''   /{/{(?:    (?P<escaped>/{/{) |  # Escape sequence of two delimiters    (?P<named>[_a-z][_a-z0-9]*)/}/}   |  # delimiter and a Python identifier    {(?P<braced>[_a-z][_a-z0-9]*)}/}/}  |  # delimiter and a braced identifier    (?P<invalid>)       # Other ill-formed delimiter exprs   )   '''    t2 = MyTemplate(''''' {{{{ {{var}} ''')  print('MATCHES: ', t2.pattern.findall(t2.template)) print('SUBSTITUTED: ', t2.safe_substitute(var='replacement')) 

输出:

  /$(?:    (?P<escaped>/$) |  # Escape sequence of two delimiters    (?P<named>[_a-z][_a-z0-9]*)   |  # delimiter and a Python identifier    {(?P<braced>[_a-z][_a-z0-9]*)}  |  # delimiter and a braced identifier    (?P<invalid>)       # Other ill-formed delimiter exprs   )    MATCHES: [('{{', '', '', ''), ('', 'var', '', '')] SUBSTITUTED:  {{ replacement 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表