扫码关注官方订阅号
光阴似箭催人老,日月如移越少年。
匹配到第二个括号的时候 值是 mo.group(2)
mo.group(2)
mo.group(1) 没匹配到就 None 了
mo.group(1)
None
def mark(mo): # print(mo.group(1)) for i in range(1, 4): match_result = mo.group(i) if match_result is not None: print(i) return match_result re_sub = re.sub(r'@(yangxg)|@(zengshao)|@(zmrenwu)', mark, '@yangxg @zengshao @zmrenwu') print(re_sub)
这样写或许比较好些?输出符合你的要求
def mark(mo): print(mo.group(1)) return mo.group(1)[1:] data = re.sub(r'(@\w+)', mark, '@yangxg @zengshao @zmrenwu') print data
import re data = re.sub(r'@(\w+)', '\\1','@yangxg @zengshao @zmrenwu') print data
result = re.sub(r'@(\w+)', lambda mo: mo.group(1), '@yangxg @zengshao @zmrenwu')
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
匹配到第二个括号的时候 值是
mo.group(2)mo.group(1)没匹配到就None了这样写或许比较好些?输出符合你的要求