【发布时间】:2014-05-28 04:43:46
【问题描述】:
我需要用数组替换字符串中的一些东西,它们看起来像这样:
array = [3, "$x" , "$y", "$hi_buddy"]
#the first number is number of things in array
string = "$xena is here $x and $y."
我有另一个数组来替换那些东西,假设它叫做 rep_array。
rep_array = [3, "A", "B", "C"]
对于替换我使用这个:
for x in range (1, array[0] + 1):
string = string.replace(array[x], rep_array[x])
但结果是:
string = "Aena is here A and B."
但我只需要孤独的 $x 而不是 $x 换句话说。 结果应如下所示:
string = "$xena is here A and B."
注意:
-
array中的所有模式都以$开头。 - 如果匹配
$之后的整个单词,则匹配模式;$xena不匹配$x,但foo$x会匹配。 -
$可以用@进行转义,并且不应匹配(例如$x不匹配@$x)
【问题讨论】:
-
所有替换模式都以
$开头吗? -
为什么不使用 python 中的string formats,而不是重新发明轮子?
-
@MartijnPieters: ` \$x ` 怎么样,在替换数组中你会有 ` A `?
-
@npinti:对不起,我不明白你的意思。
-
@Alfe:这就是为什么我问这个模式是否总是以
$开头。
标签: python arrays regex replace