使用Python正则表达式提取多格式数据中的Twitter handle
提取Twitter账号(Handle)的解决方案
核心匹配规则
用正则表达式可覆盖所有目标场景,匹配逻辑兼顾直接@标记和各类Twitter链接格式:
(?:@|twitter\.com\/)([a-zA-Z0-9_]{1,15})(?:\/|\?|$)
规则说明
(?:@|twitter\.com\/):匹配账号的前缀触发条件,要么是@符号,要么是链接里的twitter.com/([a-zA-Z0-9_]{1,15}):捕获Twitter账号本身(官方限定账号只能包含字母、数字、下划线,长度1-15位)(?:\/|\?|$):匹配账号的结束边界,包括链接后续路径的/、链接参数的?,或是字符串结尾
输入输出示例
单个账号输入场景:
输入:
https://twitter.com/elonmusk
输出:elonmusk
输入:
https://twitter.com/elonmusk/status/43940840234234
输出:elonmusk
输入:
https://twitter.com/elonmusk?t=w5i1O32q6dM7usSQEaTGvA&s=09
输出:elonmusk
输入:
@elonmusk
输出:elonmusk
多账号输入场景:
输入:
https://twitter.com/elonmusk https://twitter.com/elonmusk/status/43940840234234
输出:elonmusk,elonmusk
实现步骤
- 对输入文本执行正则全局匹配,提取所有符合规则的捕获组内容
- 将提取到的所有账号用逗号拼接,得到最终结果
内容的提问来源于stack exchange,提问作者yurasharko
相关产品推荐
相关产品推荐

