Python 中开发pattern的string模板(template) 实例

系统 1315 0

定制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
            
              \{\{) |  # 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 

                  
                
              
            
          

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论