regex.match没有找到子字符串?

时间:2017-01-03 03:35:51

标签: python

我有一些python代码,我正在尝试解析字符串的特定部分,以便我可以获取用户名列表。我我有正则表达式(我在线测试它似乎工作)但是当我运行我的测试代码时,它似乎并没有真正抓住我需要的东西,因为我得到一个错误:

  

如果parsed_mod_string.group(1):
  AttributeError:'NoneType'对象有   没有属性'group'

我基本上理解的是,我的代码没有返回任何与我的正则表达式比较。我的代码如下,有人可以帮我确定哪里出错了吗?

import re
MOD_LIST_MSG = re.compile(r":\w+\.\w+\.\w+ NOTICE #\w+ :The moderators of this room are:(.*)")

test_msg = ":tmi.twitch.tv CAP * ACK :twitch.tv/commands\r\n:tmi.twitch.tv NOTICE #secondubly :The moderators of this room are: mod1, mod2, mod3, mod4\r\n"

parsed_mod_string = MOD_LIST_MSG.match(test_msg)
if parsed_mod_string.group(1):
    mod_list = parsed_mod_string.group(1).split(', ')
    print(mod_list)

1 个答案:

答案 0 :(得分:1)

根据文档re.match

  

如果字符串开头的零个或多个字符与正则表达式匹配..

也就是说,re.match是一个"锚定的"搜索功能。

将此与re.search

进行比较
  

扫描字符串,查找的第一个位置,其中[模式匹配..]