【发布时间】:2020-02-02 10:05:06
【问题描述】:
我正在寻找一种方法来使用 python 的re.sub 选择和替换我的字符串中的某个部分。
在我的例子中,字符串是
'SELECT * FROM contacts WHERE "id"=%user.id%;'
% 标志中的内容应该是返回数字、字符串或其他的简短可执行代码。
# having these
user = User(id=123)
'SELECT * FROM contacts WHERE "id"=%user.id%;'
# output should be
'SELECT * FROM contacts WHERE "id"=123;'
还有
# having these
user = User(id=123, name="John Smith")
'''SELECT * FROM contacts WHERE "name"=%user.name.lower().replace(" ", "_")%;'''
# output should be
'''SELECT * FROM contacts WHERE "name"='john_smith';'''
我对正则表达式很陌生,所以我不知道该怎么做。我试过/%\w+/g,但这只会匹配%user,而不是%user.id%。我能做什么?
【问题讨论】: