更换整个字的Python(唯一的变量)(Replace whole word Python (onl

2019-09-30 10:48发布

我试图做的,我发现它替换所有的字符串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

Answer 1:

我想,这应该工作:

for word in alist:
    query = re.sub(r'\b'+word+r'\b',var,query)


Answer 2:

您可以编译任何匹配的话在一个正则表达式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转义码。



Answer 3:

我想在LISTA [指数]与值从VAR替换值 - >变量。

由此,我认为你正在寻找这些方针的东西:

for index in (range(len(lista))):
    lista[index] = var

这改变在列表中的所有项目var

如果你不想被替换列表中的所有项目,你需要做出决定,以取代正确的项目,所以也许(如果你已经知道在需要更换列表中的项目的位置):

lista[index] = var


Answer 4:

作为kaasias写道,只需更改与此代码列表中的元素:

for index in (range(len(lista))):
    lista[index] = var

并确保您列表的新元素创建查询。

query = "SELECT " + lista[0] + ", " + AdditionalInformation + ", " lista[1] + " FROM " + table


文章来源: Replace whole word Python (only variable)