python - re.sub(...) 替换最左边的事件?

标签 python regex

$ pydoc re.sub :

sub(pattern, repl, string, count=0, flags=0)
    Return the string obtained by replacing the leftmost
    non-overlapping occurrences of the pattern in string by the
    replacement repl.

>>> re.sub('ROAD', 'RD.', 'BRRROADBBRROAD ROAD ROAD MY ROAD')
'BRRRD.BBRRD. RD. RD. MY RD.'

python文档中leftmost的意思不太明白。据我所知,似乎 re.sub(...) 正在用 repl< 替换 all 出现的 pattern/

最佳答案

注意以“s”结尾的最左边的非重叠事件

re.sub 替换所有出现的地方。您可以使用可选的 count 参数来限制它执行的替换数量。

“最左边的非重叠”意味着如果多个事件重叠并且可能被替换,则只有最左边的会:

>>> str = 'AABBBBAA'
>>> re.sub('BBB', 'CCC', str)
'AACCCBAA'

如您所见,BBB 在这里出现了两次(重叠)。只有最左边的被替换。

关于python - re.sub(...) 替换最左边的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6639522/

相关文章:

jquery - 使用Jquery和正则表达式更改部分HREF

javascript - 正则表达式 (HTML/Javascript) - 获取所有数字和句号

python - 如何模拟 python dict __str__ 方法?

python - AppEngine 混淆 - CGI,WSGI 兼容?

python - Pandas 中的动态产品

ios - 无法在 objective-c 中创建正则表达式

java - 如何找到与 java 中的输入匹配的正则表达式模式部分?

python - 如何在 Python 中编辑文本文件?

python - 在 Twisted *之前* 开始服务时执行异步代码

python - Django 查询集,其中字段值位于列表中