使用正则表达式删除 Python 中的用户名

Using regex to delete a username in Python

我有一个类似的代码使用正则表达式从文本中删除“用户名”

# remove mention, link, hashtag
text = ' '.join(re.sub("([@#][A-Za-z0-9]+)|(\w+:\/\/\S+)"," ", text).split())

然而,它并不是在所有情况下都有效,例如,下面的用户名似乎没有被删除:

@username_user

事实上,它只适用于用户名的第一部分,在下划线之前,留下以下内容:

user

我如何调整我的代码才能处理示例中提供的整个用户名?

如果您只需要调整 regex 以匹配更多用户名模式,例如 @username_user,那么您可以在第一组中添加下划线,如下所示:

text = ' '.join(re.sub("([@#][A-Za-z0-9_]+)|(\w+:\/\/\S+)"," ", text).split())

以上将适用于“@username_user”,您可以根据需要将其适应任意多的新字符,方法是在下划线后添加它们正则表达式的字符集(方括号;在数字 9 之后)。