簡體   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