正则表达式识别Reddit用户名

时间:2017-09-07 20:30:50

标签: python regex reddit praw

我正在制作一个机器人,如果用户名不是特定用户,我可以选择不发布。

Reddit用户名在两种情况下都可以包含字母,并且有数字。

哪个正则表达式可用于识别此类用户名?格式为/u/USERNAME,其中用户名可以包含案例和数字的字母,例如ExaMp13

我试过了/u/[A-Z][a-z][0-9]

3 个答案:

答案 0 :(得分:3)

Reddit用户名的有效字符前面有/u/,包括:

  • 大写
  • 小写
  • 位数
  • 下划线
  • 连字符

这个正则表达式满足这些标准:

/u/[A-Za-z0-9_-]+

答案 1 :(得分: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

答案 2 :(得分:2)

你可以使用这样的正则表达式:

/u/\w+