Python - 定制语法的string

发布时间:2019-08-11 11:26:24编辑:auto阅读(1611)

    定制语法的string模板(template) 详解


    本文地址: http://blog.csdn.net/caroline_wendy/article/details/28614491


    string模板(template)参考: http://blog.csdn.net/caroline_wendy/article/details/27054263


    string.Template()内添加替换的字符, 使用"$"符号, 或 在字符串内, 使用"${}"; 调用时使用string.substitute(dict)函数.

    可以通过继承"string.Template", 覆盖变量delimiter(定界符)和idpattern(替换格式), 定制不同形式的模板.


    代码:

    # -*- coding: utf-8 -*-
    
    '''
    Created on 2014.6.5
    
    @author: Administrator
    
    @edition : python 3.3.0, eclipse pydev
    '''
    
    
    
    import string
    
    template_text = '''
        Delimiter : %%
        Replaced : %with_underscore
        Ingored : %notunderscored
    '''
    
    d = {'with_underscore' : 'replaced',
         'notunderscored' : 'not replaced'}
    
    class MyTemplate(string.Template):
        delimiter = '%'
        idpattern = '[a-z]+_[a-z]+'
        
    t = MyTemplate(template_text)
    print('Modified ID pattern: ')
    print(t.safe_substitute(d))

    输出:

    Modified ID pattern: 
    
        Delimiter : %
        Replaced : replaced
        Ingored : %notunderscored
    

    注意: 定界符(delimiter)为"%", 替换模式(idpattern)必须包含下划线, 所以第2个没有进行替换.




关键字