【发布时间】:2015-11-19 15:24:08
【问题描述】:
我有一个字符串'1472_1 2014-6-19',我想用单词“Normal”替换下划线后面的任何数字(在本例中为第一个),我所做的是找到我想要替换的元素的索引:
print line.replace(line[line.find('_') + 1:line.find(' ')],'Normal', 1)
但是我没有得到'1472_Normal 2014-6-19',而是得到了'Normal472_1 2014-6-19'
似乎我的代码替换了第一个 1 而不是下划线后面的那个。
我已经阅读了这篇文章:Replacing specific words in a string (Python),但仍然想知道有没有办法指定要替换的元素而不是使用正则表达式?
为了清楚起见,下划线后面的数字可以是 0 到 237 之间的任何数字
【问题讨论】:
-
您可以使用正则表达式还是将其保留为字符串操作?
-
你必须使用正则表达式。值不是静态的任何地方都需要通配符。这需要正则表达式
-
其实我想避免正则表达式,所以我想知道有没有其他方法可以做到这一点?
-
@Enkri_ - 如果你不理解也没关系。我仍然不明白其中一些变得相当复杂。但是,因此您有一定的背景,这个工具应该成为您最好的朋友。 regex101.com
-
这里不需要正则表达式。