gpt4 book ai didi

python - 使用 re.sub 替换字符 - 保留一个字符

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:36 28 4
gpt4 key购买 nike

我正在尝试修复表格中损坏的电子邮件记录。有电子邮件,例如:“google@google.comyahoo@yahoo.com”,但可以有一个电子邮件,如“google@google.com”。在我看来,使这个正确的最好方法是使用 re.sub。但是有一个小问题。如果有记录:

email = 'google@google.comyahoo@yahoo.com'

我不能简单地执行 replace('.com','.com, ') 因为它会影响两个 '.com' 子字符串。所以我想使用 re.sub('.com\w', '.com,\w',email) 只替换那些 '.com' 子字符串,它们不是最后的记录。问题是我想在那里保留一个\w 值。

print re.sub('.com\w', '.com,\w',email)

>>> google@google.com, \wahoo@yahoo.com

代替

>>> google@google.com, yahoo@yahoo.com

任何人都可以给我建议如何让它发挥作用吗? (我想用逗号和空格分隔电子邮件)

最佳答案

使用捕获组并在替换调用中反向引用该组:

>>> import re
>>> email = 'google@google.comyahoo@yahoo.com'
>>> re.sub(r'\.com(\w)', '.com, \\1', email)
'google@google.com, yahoo@yahoo.com'

Backreferences回想一下 capturing group 匹配的内容.反向引用指定为反斜杠 (\);后跟一个数字表示要召回的组数

关于python - 使用 re.sub 替换字符 - 保留一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29450475/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com