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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建立远程桌面连接计算机无密码,win7远程桌面空密码的步骤_win7系统如何设置让远程桌面登录无需密码-win7之家...

在日常工作中,可能经常会使用到远程连接桌面功能,我们要远程桌面的话,通常是要输入密码才可以的,但是有些用户觉得麻烦,那么win7系统如何设置让远程桌面登录无需密码呢?带着大家的这个问题,本文…

android 请求网络异步载入

/*** 封装ProecssDialog对话框**/ public class LoadDialog extends ProgressDialog {private String title "进度对话框";private String message "载入数据中....";public LoadDialog(Context context, int theme) {super(context, theme);}/*** 用默认…

tkinter如何lable重复显示到同一行中_如何创建包含 CAD 导入和选择的仿真 App

在使用 COMSOL 软件二次开发的过程中,你可能会遇到这样的问题:如何使用 App 开发器创建可以处理 CAD 导入并能让用户交互式选择边界条件的仿真 App?我需要了解编程吗?今天我们将为您介绍在 COMSOL 软件中创建包含 CAD 导入和选择的…

计算机科学导论课后单词,计算机科学导论课后总结

计算机科学导论课后总结1老师上课给我们演示了一个迷宫的程序,然后我上网查找了一下,大致学习了一下这个程序的思想。迷宫这个题目和数据结构—图有关迷宫的随机生成和路径搜索主要和图的遍历有关,一般来说图的遍历主要有两种方式&#xff1a…

InnerClass内部类

1,内部类概述 定义:把A类定义在B类内部,则A类是内部类。如下所示: class Outer1{外部类String name1;public void show(){System.out.println("Outer1.show()"new Inner1().name);}class Inner1{//内部类String name;pu…

表单内如何直接贴图而不用上传图片_表单如何添加图片?

表单其实就是我们平常经常看到的收集信息的框框,如姓名、电话等,当然易表单就远不止这些哦,还可制作调查问卷,报名登记、投票评选和考试测评。平时大家都擅长于制作表单的文字内容,实际上表单里边添加一些图片会让表单…

Android应用的安全的攻防之战

一、前言 在前两篇破解的文章中,我们介绍了如何使用动态调试来破解apk,一个是通过调试smali源码,一个是通过调试so代码来进行代码的跟踪破解,那么今天我们就这两篇文章的破解方法,来看看Android中开发应用的过程中如何…

标准正态分布表_表达矩阵的归一化和标准化,去除极端值,异常值

我们阅读量破万的综述:RNA-seq这十年(3万字长文综述)给粉丝朋友们带来了很多理解上的挑战,所以我们开辟专栏慢慢介绍其中的一些概念性的问题,上一期:RNA-seq的counts值,RPM, RPKM, FPKM, TPM 的异同在数据挖掘过程&…

html input p,我想在input.phtml中创建下拉框。 (不要使用zend_form)

案例1:在你看来:echo $this->formSelect(name, Option 1, array(),array(Option 1, Option 2));1 ARG:选择,第二个arg的名称:值;第三个参数:attributs,第4 ARG:选择案例2&#xf…

HTML5学习

1. HTML5是W3C和WHCTWG合作的结果。 2. W3C 指 World Wide Web Consortium,万维网联盟。 3. HTML5新规则: 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。减少对外部插件的需求(比如 Flash)更优秀的错误处理更多取代脚本的标记…

计算机网络关于封装成帧题目,上海第二工业大学-计算机网络通信期中试卷答案...

上海第二工业大学 (试卷编号: )2014-2015学年第2学期 计算机网络与通信 期中考试试卷姓名: 学号: 班级: 成绩:一、 填空题 (每空1分,共18分)1. 当前广泛提及的三网融合中的三网分别是 电信网络 、 电视网络…

python全套学习方法_python学习方法总结(内附python全套学习资料)

种一棵树最好的时间是十年前,第二好的时间是现在(文末有资料获取方法)先聊聊互联网转行那些事儿很多人是小白,想从事或转行互联网,想以python为切入口,那么恭喜你,这可能是你离互联网工作最捷径的一条道路了&#xff0…

2016.03.04,英语,《Vocabulary Builder》Unit 04

vor: 来自拉丁动词vorare,指to eat,-ivorous指吃某种食物的eater。carn肉,肉欲vore吃→吃肉的;carnival狂欢节,谢肉节voracious a 狼吞虎咽的(voracious多…..的--吃多的) voracity n 贪食(voracilty) devour v 吞吃&a…

计算机培训简报膜报,信息技术培训工作简报(第4期).doc

信息技术培训工作简报(第4期)东原香山实验小学 (第四期) 2016年3月1日信息技术培训研修总结通过培训学习,使我进一步地掌握了有关现代信息技术的知识,提高了认识。随着计算机、多媒体、现代通讯网络为代表的信息技术的迅猛发展,信息技术已经渗透到了教育…

微星主板超频_内存超频能力依旧拔群!微星MEG Z490 ACE主板评测

一、前言:内存超频首选的新板子来了一直以来,微星主板都以强悍的内存超频能力而著称,而高频内存对于许多游戏带来的提升都是肉眼可见。随着全新Intel 10代酷睿处理器的上市,微星的MEG系列的Z490主板会给大家带来哪些惊喜呢&#x…

人工智能是利用电子计算机模拟人类智力,第一章 计算机系统.ppt

多媒体计算机 扫描仪 DVD光盘及DVD 光盘刻录机 数码像机 投影仪 常用设备 基本操作 冷启动 热启动 RESET方式 启动计算机 顺序: 应用程序 ? 主机 ? 外设 ? 电源 (P27) 关闭计算机 指向、单击、双击、右击、拖放 (P30) 鼠标操作 键盘分布、功能、击键姿势 (P30~31) 键盘操作 …

g++ 内存不够_手机内存老是不足?这三招,让你马上腾出12个G

不知道朋友们遇到手机卡慢、空间不足的第一反应是什么?A:换个手机。B:内存满了,找清理软件狂删啊!使用智能手机的人大家肯定和小编一样恋旧,觉得换手机很麻烦所以不断尝试各种清理软件,清理手机…

ubuntu - 如何以root身份使用图形界面管理文件?

nautilus 是gnome的文件管理器,但是如果不是root账号下,权限受限,我们可以通过以下方式以root权限使用! 一,快捷键“ctrlaltt”,调出shell。 二,在shell中输入:“sudo nautilus ”,就…

防灾科技学院计算机组成原理,防灾科技学院计算机组成原理复习材料1

一、单项选择题:(每题1分,共20分)1、目前我们所说的个人台式商用机属于。A、巨型机B、中型机C、小型机D、微型机2、下列数中最大的数是。A、(10011001)2B、(227)8C、(98)16D、(152)103、在小型或微型计算机里,普遍采用的字符编码是。A、BCD码…

stringbuilder寻找字符串位置可能存在多个 java_Java 语言基础amp;String

Java 语言基础String 字符串的不可变性 定义一个字符串使用变量来赋值变量 String s2 s; s2 保存了相同的引用值, 因为他们代表同一个对象 字符串连接 s s.concat("ef"); s 中保存的是一个重新创建出来的 string 对象的引用 总结一旦一个 str…