Python - 定制pattern的string模板(template) 详解
来源:互联网 发布:mfc串口接收数据 编辑:程序博客网 时间:2024/06/13 07:44
定制pattern的string模板(template) 详解
本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179
string.Template的pattern是一个正则表达式, 可以通过覆盖pattern属性, 定义新的正则表达式.
如: 使用新的定界符"{{", 把{{var}}作为变量语法.
代码:
# -*- coding: utf-8 -*-'''Created on 2014.6.5@author: Administrator@edition : python 3.3.0, eclipse pydev'''import stringt = 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
10 0
- Python - 定制pattern的string模板(template) 详解
- Python - 定制语法的string模板(template) 详解
- Python的string模块中的Template类字符串模板用法
- 模板模式(Template Pattern)
- 模板模式 Template Pattern
- 模板模式(Template Pattern)
- 模板模式 | Template Pattern
- python 字符串模板用法string.Template
- C++ - 函数模板定制(function template specialization) 详解 及 代码
- 设计模式 - 模板方法模式(template method pattern) 详解
- 设计模式 - 模板方法模式(template method pattern) JFrame 详解
- 设计模式 - 模板方法模式(template method pattern) Applet 详解
- 浅析python的string.Template
- 模板模式(Template Pattern)
- 模板方法模式-Template Pattern
- 模板方法(Template Pattern)
- Java Template Pattern(模板模式)
- string.Template--字符串模板
- TCP/IP详解--滑动窗口与内核缓冲区之间的关系
- window对象的status、location、name、self、opener属性的使用
- C# 写日志的类文件
- VS2010中ashx文件中代码折叠实现方法(超级有用,终于找到了方法!)
- 循环链表的实现与操作(C语言实现)
- Python - 定制pattern的string模板(template) 详解
- 几种类的sizeof
- 计数排序
- Android 数据库升级解决方案
- Android开发模板------再按一次退出程序 KeyEvent.KEYCODE_BACK
- 使用Xcode和Instruments调试解决iOS内存泄露
- 黑马程序员_Objective C中的@property 与 @synthesize 快速生成setter getter方法
- sun.misc.BASE64Encoder找不到jar包的解决方法
- pgsql布尔值