为了账号安全,请及时绑定邮箱和手机立即绑定

Python re.sub() 的一个奇怪问题?

Python re.sub() 的一个奇怪问题?

慕娘9325324 2019-02-24 02:59:08
问题已解决,我错误地理解了捕获的概念,代码改成如下形式则得到预期结果: >>> def mark(mo): print(mo.group(1)) return mo.group(1) >>> re.sub(r'@(yangxg|zengshao|zmrenwu)', mark, '@yangxg @zengshao @zmrenwu') >>> def mark(mo): print(mo.group(1)) return mo.group(1) >>> re.sub(r'@(yangxg)|@(zengshao)|@(zmrenwu)', mark, '@yangxg @zengshao @zmrenwu') yangxg None None 可见第二次和第三次替换时 mo.group(1) 为 None 了,但我在正则表达式中指定了捕获组的,而且第一次捕获正常,是什么原因? 原本的的意图去掉每个用户名前的 @ 符号,期望的输出应该是:yangxg zengshao zmrenwu
查看完整描述

4 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

import re
data = re.sub(r'@(\w+)', '\\1','@yangxg @zengshao @zmrenwu')
print data
查看完整回答
反对 回复 2019-03-04
  • 4 回答
  • 0 关注
  • 1201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信