2
舉例來說,如果我有一個模板,如是否有辦法讓獵豹模板
"SELECT * FROM myOrders WHERE order_id = ${orderId} and order_date = ${orderDate}"
我想在模板中獲取所有佔位符列表,即所有佔位符列表['orderId','orderDate']
舉例來說,如果我有一個模板,如是否有辦法讓獵豹模板
"SELECT * FROM myOrders WHERE order_id = ${orderId} and order_date = ${orderDate}"
我想在模板中獲取所有佔位符列表,即所有佔位符列表['orderId','orderDate']
我可以使用正則表達式來拉出這些佔位符。
p.s.儘管如此,在Cheetah API中擁有該功能(可能在Template類中)會很好。
例如:
import re
templateDef = """
SELECT * FROM myOrders WHERE order_id = ${orderId} and order_date = ${orderDate}
"""
placeholders = re.findall(r"\${(\w+)}", templateDef)
print placeholders
Formatter.parse應該工作:
s = "SELECT * FROM myOrders WHERE order_id = ${orderId} and order_date = ${orderDate}"
from string import Formatter
#literal_text, field_name, format_spec, conversion
print([plh for _, plh, _,_ in Formatter().parse(s) if plh])
['orderId', 'orderDate']