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


Posted in Python onApril 01, 2017

定制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

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

Python 相关文章推荐
详解Python中的__init__和__new__
Mar 12 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
python实现媒体播放器功能
Feb 11 Python
对numpy的array和python中自带的list之间相互转化详解
Apr 13 Python
Python实现注册、登录小程序功能
Sep 21 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
Python中如何导入类示例详解
Apr 17 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
tensorflow中tf.reduce_mean函数的使用
Apr 19 Python
python元组拆包实现方法
Feb 28 Python
Python编程super应用场景及示例解析
Oct 05 Python
Python新手们容易犯的几个错误总结
Apr 01 #Python
深入解答关于Python的11道基本面试题
Apr 01 #Python
教大家玩转Python字符串处理的七种技巧
Mar 31 #Python
Python中你应该知道的一些内置函数
Mar 31 #Python
python 性能优化方法小结
Mar 31 #Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 #Python
pygame加载中文名mp3文件出现error
Mar 31 #Python
You might like
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
JS实现的系统调色板完整实例
2016/12/21 Javascript
js模糊查询实例分享
2016/12/26 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
Python易忽视知识点小结
2015/05/25 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
pycharm设置鼠标悬停查看方法设置
2019/07/29 Python
Python selenium自动化测试模型图解
2020/04/15 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
装修致歉信
2014/01/15 职场文书
《雪儿》教学反思
2014/04/17 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
选购到合适的激光打印机
2022/04/21 数码科技
Django中celery的使用项目实例
2022/07/07 Python