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

t = string.Template(‘$var‘)

print(t.pattern.pattern)

class MyTemplate(string.Template):

delimiter = ‘{{‘

pattern = r‘‘‘

\{\{(?:

(?P\{\{) | # Escape sequence of two delimiters

(?P[_a-z][_a-z0-9]*)\}\} | # delimiter and a Python identifier

{(?P[_a-z][_a-z0-9]*)}\}\} | # delimiter and a braced identifier

(?P) # Other ill-formed delimiter exprs

)

‘‘‘

t2 = MyTemplate(‘‘‘

{{{{

{{var}}

‘‘‘)

print(‘MATCHES: ‘, t2.pattern.findall(t2.template))

print(‘SUBSTITUTED: ‘, t2.safe_substitute(var=‘replacement‘))

输出:

\$(?:

(?P\$) | # Escape sequence of two delimiters

(?P[_a-z][_a-z0-9]*) | # delimiter and a Python identifier

{(?P[_a-z][_a-z0-9]*)} | # delimiter and a braced identifier

(?P) # Other ill-formed delimiter exprs

)

MATCHES: [(‘{{‘, ‘‘, ‘‘, ‘‘), (‘‘, ‘var‘, ‘‘, ‘‘)]

SUBSTITUTED:

{{

replacement

python string模块template_Python - 定制pattern的string模板(template) 详解相关推荐

  1. python的模块提供了许多文件处理方法_详解使用Python处理文件目录的相关方法

    所有文件都包含在各个不同的目录下,不过Python也能轻松处理.os模块有许多方法能帮你创建,删除和更改目录. mkdir()方法 可以使用os模块的mkdir()方法在当前目录下创建新的目录们.你需 ...

  2. python pymysql模块 链接mysql 遍历查询结果的方法 详解

    目录 python链接mysql的方法 遍历字段获取值 完整代码 python链接mysql的方法 import json import pymysql def connect_mysql():con ...

  3. Python - 定制pattern的string模板(template) 具体解释

    定制pattern的string模板(template) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/28625179 ...

  4. python怎么安装myqr模块-python二维码操作:对QRCode和MyQR入门详解

    python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个 ...

  5. python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

    首先,先介绍两种引入模块的方法. 法一:将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二:只引入某个文件中一个类/函数/变量 ...

  6. pythonprint字节按照16进制输出_对python以16进制打印字节数组的方法详解

    对python以16进制打印字节数组的方法详解 一.问题描述 如果直接用print打印bytes的话,有时候会直接显示ascii对应的字符,看起来很蛋疼. 二.运行效果 上面一行是直接用print打印 ...

  7. python实现单例模式的几种方式_基于Python中单例模式的几种实现方式及优化详解...

    单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...

  8. python如何制作脚本_用python给自己做一款小说阅读器过程详解

    前言 前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而 ...

  9. python2.7除法_对python中的float除法和整除法的实例详解

    从python2.2开始,便有两种除法运算符:"/"."//".两者最大区别在: python2.2前的版本和python2.2以后3.0以前的版本的默认情况下 ...

最新文章

  1. Swin-Transformer又又又下一城 | 看SwinTrack目标跟踪领域独领风骚
  2. php 使用压缩css文件,PHP-使用GZIP压缩静态CSS文件
  3. .NET Core开发日志——Runtime IDentifier
  4. JMeter部分功能详解
  5. 【原】webpack--loaders,主要解释为什么需要loaders和注意事项
  6. 如何获取 WebAssembly 代码
  7. 【难点+重点BFS】LeetCode 126. Word Ladder II
  8. 计算机office高级应用都考啥,office高级应用考什么 评分标准是什么
  9. Paper | Multitask learning
  10. php服务器搬迁失败原因
  11. MYSQL时间函数之NOW()
  12. 进阶篇:2.1)DFMA实施障碍和关键
  13. 基于matlab山脊线,教你如何利用水文,分析提取山脊线山谷线
  14. 设置WebView字体颜色,背景颜色
  15. android高德地图多个mark点击,Android ---------高德卫星地图绘制多个点和点的点击事件自定义弹窗...
  16. VMware Fusion安装CentOS 7教程
  17. MySQL数据库创建用户及授权
  18. 技术支持工程师面试试题
  19. win2003服务器端口修改,Windows 2003修改3389端口的方法
  20. MMR(最大边界相关算法)

热门文章

  1. 时隔多日,旧域名重用,niceyoo博客上线
  2. Axure 共享强制签出签入
  3. java 组合对象_Java 中组合模型之对象结构模式的详解
  4. leetcode 73 矩阵置零 C++ 两种解法
  5. 特别慢_这款“爱豆”很特别,它带你重温旧时光,体验慢生活的时代
  6. 【常见笔试面试算法题12续集一】动态规划算法案例1台阶问题练习题
  7. selenium+python自动化80-文件下载(不弹询问框)
  8. 【大数据】获取一篇新闻的全部信息
  9. [译]Javascript中的闭包(closures)
  10. 粉红小猪中有一个叫“快乐小鸡”的游戏