我正在尝试做一个代码,它只替换字符串变量中的整个单词。首先,我找到了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
答案 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