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

Posted

技术标签:

【中文标题】如何替换 Python 中第一次出现的正则表达式?【英文标题】:How to replace the first occurrence of a regular expression in Python? 【发布时间】:2011-04-26 11:37:54 【问题描述】:

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

【问题讨论】:

【参考方案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】:

re.sub(pattern, repl, string[, count, flags]) 中指定count 参数

可选参数计数是 模式出现的最大数量 将被替代;计数必须是 非负整数。如果省略或 零,所有的事件都将是 换了。

【讨论】:

以上是关于如何替换 Python 中第一次出现的正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式替换换行符,如果它们出现超过一次,包括中间有空格的组合

Python正则表达式

使用正则表达式删除第一次出现的空白,然后用逗号替换其余的选项卡

不止一次用正则表达式替换两个字符串之间的字符串,python

Java如何计数替换字符串中第一次出现的子字符串?

如何在 Python 中应用正则表达式替换?