光阴似箭催人老,日月如移越少年。
匹配到第二个括号的时候 值是 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')
匹配到第二个括号的时候 值是
mo.group(2)
mo.group(1)
没匹配到就None
了这样写或许比较好些?输出符合你的要求