替换整个单词Python(仅变量)

时间:2016-08-19 11:53:49

标签: python replace

我正在尝试做一个代码,它只替换字符串变量中的整个单词。首先,我找到了re.sub解决方案,但内部没有提到变量。 现在我的解决方案看起来(它不会取代整个单词):

for index in (range(len(lista)):
    query=query.replace(lista[index],var)

如上例所示,我想将lista[index]中的值替换为VAR -> variable的值。

编辑:

示例查询:

Select Information,AdditionalInformation,Price from Table

示例lista vales:

Information, Price 

示例var:

var = "hide"

最后查询应该看起来:

Select hide,AdditionalInformation,hide from Table

4 个答案:

答案 0 :(得分:2)

我认为这应该有效:

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

答案 1 :(得分: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用于匹配单词边界;这可以防止&#34; AdditionalInformation&#34;从被修改。请参阅文档中的Regular Expression Syntax。我们需要将其写为原始字符串r'\b',否则它将被解释为退格的ANSI转义码。

答案 2 :(得分:0)

  

我想用list - &gt;中的值替换lista [index]中的值   变量

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

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

这会将列表中的所有项目更改为var

如果您不希望替换列表中的所有项目,则需要决定更换正确的项目,因此可能(如果您已经知道列表中项目的位置,需要更换):

lista[index] = var

答案 3 :(得分:0)

正如kaasias所写,只需使用以下代码更改列表元素:

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

并确保使用列表中的新元素创建查询。

query = "SELECT " + lista[0] + ", " + AdditionalInformation + ", " lista[1] + " FROM " + table
相关问题