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使用mailbox打印电子邮件的方法
Apr 30 Python
Python对列表排序的方法实例分析
May 16 Python
python中abs&amp;map&amp;reduce简介
Feb 20 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python如何保证输入键入数字的方法
Aug 23 Python
python多线程扫描端口(线程池)
Sep 04 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
如何用 Python 子进程关闭 Excel 自动化中的弹窗
May 07 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 23 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 cron中的批处理
2008/09/16 PHP
php实现构建排除当前元素的乘积数组方法
2018/10/06 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
python中import reload __import__的区别详解
2017/10/16 Python
解决python删除文件的权限错误问题
2018/04/24 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
教师求职自荐书
2014/06/14 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
会计求职简历自我评价
2015/03/10 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android