正则表达式“动态”替换

我有一个多行字符串,需要在每行的开头附加一个(不同的)字符(1 个空格作为分隔符)。我怎么能用正则表达式做到这一点?有没有办法在没有太多拆分和合并的情况下做到这一点?

假设行数等于要添加的字符数。

输入

m = """
0 1 2 3 4 5
1 0 1 2 3 4
2 1 1 2 3 4
"""

所需的输出(假定参考字符串"bip"

b 0 1 2 3 4 5
i 1 0 1 2 3 4
p 2 1 1 2 3 4
b 0 1 2 3 4 5
i 1 0 1 2 3 4
p 2 1 1 2 3 4

这是一个基于n匹配的工作代码示例

import re

m = """
0 1 2 3 4 5
1 0 1 2 3 4
2 1 1 2 3 4
"""

re.sub(r'n', 'n{} ', m[:-1]).format(*list('bip'))

但我需要省略最后一个字符,它会n。我尝试使用其他模式,例如Aor^^flags=re.MULTILINE但没有成功。

如何避免字符串切片m[:-1]

有没有更纯粹的正则表达式来解决这个问题?

回答

这是使用第 4 个参数countre.sub另一种方法,它告诉要进行多少次替换:

根据链接的文档:

re.sub(pattern, repl, string, count=0, flags=0)
re.sub(pattern, repl, string, count=0, flags=0)

代码:

代码演示

输出:


以上是正则表达式“动态”替换的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>