【问题标题】:Regex to identify Reddit usernames正则表达式识别 Reddit 用户名
【发布时间】:2018-02-16 16:20:21
【问题描述】:
我正在制作一个机器人,如果用户名不是特定用户,则可以选择不发布。
Reddit 用户名在这两种情况下都可以包含字母,也可以包含数字。
哪个正则表达式可以用来识别这样的用户名?格式为/u/USERNAME,其中用户名可以包含大小写字母和数字,例如ExaMp13。
我试过/u/[A-Z][a-z][0-9]
【问题讨论】:
标签:
python
regex
reddit
praw
【解决方案1】:
Reddit 用户名的有效字符以/u/ 开头,包括:
这个正则表达式符合这些标准:
/u/[A-Za-z0-9_-]+
【解决方案2】:
简介
感谢您使用您尝试过的内容更新您的帖子,因为这让我们了解您可能不理解的内容(并帮助我们解释您出错的地方以及如何解决它)。
您的正则表达式不起作用,因为它检查[A-Z],然后是[a-z],然后是[0-9]。所以你的正则表达式只会匹配Be1
回答
您应该尝试使用[a-zA-Z0-9] 或\w 并指定一个量词,例如+(一个或多个)。
对于您的具体问题,您应该使用\/u\/(\w+)(或/u/(\w+),因为python 不关心转义)。这将允许您根据您希望不发布的用户列表检查第一个捕获组。
这些正则表达式将确保它匹配 /u/ 后跟任何单词字符 [a-zA-Z0-9_] 1 到无限次。
查看工作示例here