繁体   English   中英

如何动态解析python字符串模板?

[英]How to dynamically parse python string templates?

我有一个带有占位符的字符串,例如:

url = "http://www.myserver.com/$abc/$foo_or_bar/$xy"

我不能使用模板( http://is.gd/AKmGxa ),因为我的占位符字符串需要用某种逻辑来解释。

我需要遍历所有现有的占位符,并用代码生成的值替换它们。

我怎样才能做到这一点? TIA!

使用re.sub ,它可以接受替换函数作为第二个参数;

>>> url = "http://www.myserver.com/$abc/$foo_or_bar/$xy"
>>>
>>> def some_logic(match):
...     s = match.group()  # to get matched string
...     return str(len(s) - 1)  # put any login you want here
...
>>> import re
>>> re.sub('\$\w+', some_logic, url)
'http://www.myserver.com/3/10/2'

顺便说一句,如果您通过自定义映射,也可以使用string.Template

>>> class CustomMapping:
...     def __getitem__(self, key):
...         return str(len(key))
...
>>> import string
>>> url = "http://www.myserver.com/$abc/$foo_or_bar/$xy"
>>> string.Template(url).substitute(CustomMapping())
'http://www.myserver.com/3/10/2'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM