我正在尝试替换文本文件中的字符串,以便它只替换字符串的完全匹配。
所以如果文件是:
"word"
"word_1"
"word1"
"wordA"
我想用word
替换test_1
我会这样做:
text.replace("word", "test_1")
但是通过这样做,我也用其他文本替换其他所有word
。所以文件将是这样的:
"test_1"
"test_1_1"
"test_11"
"test_1A"
我想要它所以我只能替换word
,以便只有在它之后没有任何小写字母,大写字母或下划线时它才会替换它。我希望将替换限制为仅精确匹配,因此如果文件中的其他字符串具有相同的文本,其后面包含字母,数字或下划线,则它们不会受到影响。我也想这样,如果之后的任何其他字符不是字母,数字或下划线将被替换,如果它是:
word"
word;
word:
那些没关系,因为它们之后没有字母,数字或下划线。
我想要这个,所以我可以用不同的东西替换其他字符串,如:
text.replace("word", "test_1")
text.replace("word_1", "test_2")
text.replace("word1", "test_3")
text.replace("wordA", "test_4")
这样文件将是:
test_1
test_2
test_3
test_4
我该怎么做?
答案 0 :(得分:0)
试试这个:
data = """word
word_1
word1
wordA
"""
replacements = {
"word": "test_1",
"word_1": "test_2",
"word1": "test_3",
"wordA": "test_4"
}
print(reduce(lambda a, b: a.replace(*b), replacements.iteritems(), data))