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 相关文章推荐
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
python实现求最长回文子串长度
Jan 22 Python
解决python3 urllib 链接中有中文的问题
Jul 16 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
python__new__内置静态方法使用解析
Jan 07 Python
简单的命令查看安装的python版本号
Aug 28 Python
详解scrapy内置中间件的顺序
Sep 28 Python
python3中确保枚举值代码分析
Dec 02 Python
详解python3 GUI刷屏器(附源码)
Feb 18 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 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获取操作系统语言代码
2013/11/04 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
django model去掉unique_together报错的解决方案
2016/10/18 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
python3实现微型的web服务器
2019/09/03 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
数据库的约束含义
2012/09/09 面试题
专科毕业生自我鉴定
2013/12/01 职场文书
红领巾心向党广播稿
2014/01/19 职场文书
班长自荐书范文
2014/02/11 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
学校端午节活动方案
2014/08/23 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
写景作文评语集锦
2014/12/25 职场文书
事业单位聘任报告
2015/03/02 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
如何在C++中调用Python
2021/05/21 Python
php双向队列实例讲解
2021/11/17 PHP
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL
Python序列化模块JSON与Pickle
2022/06/05 Python