我试图做的,我发现它替换所有的字符串variable.First只有整个字码re.sub
解决方案,但没有关于变量里面提到有。 现在我的解决方案看起来(它不会取代整个词):
for index in (range(len(lista)):
query=query.replace(lista[index],var)
如以上关于例如,我想替换值lista[index]
从具有值VAR -> variable
。
编辑:
例如查询:
Select Information,AdditionalInformation,Price from Table
例如券名单:
Information, Price
例如VAR:
var = "hide"
最后查询应该长相:
Select hide,AdditionalInformation,hide from Table
我想,这应该工作:
for word in alist:
query = re.sub(r'\b'+word+r'\b',var,query)
您可以编译任何匹配的话在一个正则表达式lista
。
import re
query = "Select Information,AdditionalInformation,Price from Table"
lista = ["Information", "Price"]
var = "hide"
pat = re.compile(r'\b' + '|'.join(lista) + r'\b')
query = pat.sub(var, query)
print(query)
产量
Select hide,AdditionalInformation,hide from Table
该\b
用于匹配字边界; 这防止“AdditionalInformation”被修改。 见正则表达式语法中的文档。 我们需要把它写成一个原始字符串, r'\b'
,否则它被解释为退格键的ANSI转义码。
我想在LISTA [指数]与值从VAR替换值 - >变量。
由此,我认为你正在寻找这些方针的东西:
for index in (range(len(lista))):
lista[index] = var
这改变在列表中的所有项目var
。
如果你不想被替换列表中的所有项目,你需要做出决定,以取代正确的项目,所以也许(如果你已经知道在需要更换列表中的项目的位置):
lista[index] = var
作为kaasias写道,只需更改与此代码列表中的元素:
for index in (range(len(lista))):
lista[index] = var
并确保您列表的新元素创建查询。
query = "SELECT " + lista[0] + ", " + AdditionalInformation + ", " lista[1] + " FROM " + table