匹配用户昵称的正则表达式

Python gaolinjie 发表于 4 年前最后回复来自 qq2850071112 1 年前

之前没学过正则,现有的代码可以提取@后的英文用户名,现在想扩展可以提取@后含英文、数字、下划线和汉字的昵称,请问这个正则怎么写啊?

现有的代码:

import re

def find_mentions(content):
    regex = re.compile(r"@(?P<username>\w+)(\s|$)", re.I)
    return [m.group("username") for m in regex.finditer(content)]
共收到3条回复
guokai 4 年前 #1

正则部分改为 @(?P<username>[a-zA-Z0-9\x7f-\xff_]+)(\s|$)即可。

gaolinjie 4 年前 #2

@guokai 谢谢,我发现除了正则的问题外,和编码还是有关系的,在正则表达式前面需要加ur'@(?P<username>[a-zA-Z0-9\x7f-\xff_]+)(\s|$)'改编码为unicode,才能匹配中文

www234 4 年前 #3

怎么发不了主题?

登录后即可参与回复