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字符串详细介绍
May 09 Python
在Python中定义和使用抽象类的方法
Jun 30 Python
利用python写个下载teahour音频的小脚本
May 08 Python
Python实现学校管理系统
Jan 11 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
Python多线程threading模块用法实例分析
May 22 Python
Python数据库小程序源代码
Sep 15 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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实例分享之mysql数据备份
2014/05/19 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
nodejs中全局变量的实例解析
2017/03/07 NodeJs
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
园长自我鉴定
2013/10/06 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
五一劳动节活动总结
2015/02/09 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
民事二审代理词
2015/05/25 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
Python中的 enumerate和zip详情
2022/05/30 Python