如何在Python中替换第一次出现的正则表达式?

时间:2010-10-17 01:57:33

标签: python regex search replace

我想只替换字符串中第一次出现的正则表达式。有没有方便的方法呢?

2 个答案:

答案 0 :(得分:45)

re.sub()有一个count参数,表示要执行的替换次数。您可以将其设置为1:

>>> s = "foo foo foofoo foo"
>>> re.sub("foo", "bar", s, 1)
'bar foo foofoo foo'
>>> s = "baz baz foo baz foo baz"
>>> re.sub("foo", "bar", s, 1)
'baz baz bar baz foo baz'

编辑:以及带有已编译SRE对象的版本:

>>> s = "baz baz foo baz foo baz"
>>> r = re.compile("foo")
>>> r.sub("bar", s, 1)
'baz baz bar baz foo baz'

答案 1 :(得分:8)

re.sub(pattern, repl, string[, count, flags])

中指定count参数
  

可选参数count是   最大模式发生次数   将被替代;伯爵必须是一个   非负整数。如果省略或   零,所有出现的都是   替换。