【问题标题】:Regex to identify Reddit usernames正则表达式识别 Reddit 用户名
【发布时间】:2018-02-16 16:20:21
【问题描述】:

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

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

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

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

【问题讨论】:

  • @MrGeek 成功了
  • 你可以试试/u/\w+

标签: 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

【讨论】:

    【解决方案3】:

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

    /u/\w+
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 2012-03-01
      相关资源
      最近更新 更多