Подтвердить что ты не робот

Как заменить первое вхождение регулярного выражения в Python?

Я хочу заменить только первое вхождение регулярного выражения в строку. Есть ли удобный способ сделать это?

4b9b3361

Ответ 1

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'

Ответ 2

Укажите аргумент count в re.sub(pattern, repl, string[, count, flags])

Необязательный счетчик аргументов максимальное количество экземпляров шаблона для замены; счет должен быть неотрицательное целое число. Если опустить или ноль, все вхождения будут заменить.