用于识别 Reddit 用户名的正则表达式

Regex to identify Reddit usernames

我正在制作一个机器人,如果用户名不是某个用户,则可以选择不 post。

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

哪个正则表达式可以用来识别这样的用户名?格式为/u/USERNAME,其中用户名可以是大小写字母和数字,如ExaMp13

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

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

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

此正则表达式符合以下条件:

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

简介

感谢您使用您尝试过的内容更新您的 post,因为这让我们了解您可能不理解的地方(并帮助我们解释您哪里出错了以及如何解决)。

您的正则表达式不起作用,因为它先检查 [A-Z],然后检查 [a-z],然后检查 [0-9]。所以你的正则表达式只会匹配 Be1

回答

您应该改为尝试 [a-zA-Z0-9]\w 并指定量词,例如 +(一个或多个)。

对于您的特定问题,您应该使用 \/u\/(\w+)(或 /u/(\w+),因为 python 不关心转义)。这将允许您根据您想要 而不是 post 的用户列表检查第一个捕获组。

这些正则表达式将确保它匹配 /u/ 后跟任何单词字符 [a-zA-Z0-9_] 1 到无限次。

查看工作示例here

您可以像这样使用正则表达式:

/u/\w+