Python Regex:无法提取包含转义引号的邮件

时间:2015-12-19 05:16:48

标签: python regex

我正在为Slack创建一个机器人,它需要能够从一串看起来像这样的数据中提取消息:

[{'text': 'This is my legit "test" \'message\' with "lots" of \'quotation marks\'', 'type': 'message', 'user': '<userID>', 'channel': '<channelID>, 'ts': '1450501889.000074', 'team': '<teamID'}]

我现在的正则表达式是:

re.search(r''''text': (["'])(.*?)\1''', channelstatus)

如何让它仅输出以下内容?

This is my legit "test" 'message' with "lots" of 'quotation marks'

1 个答案:

答案 0 :(得分:2)

不需要正则表达式 - ast.literal_eval()可以处理:

>>> from ast import literal_eval
>>>
>>> s = r'''[{'text': 'This is my legit "test" \'message\' with "lots" of \'quotation marks\'', 'type': 'message', 'user': '<userID>', 'channel': '<channelID>', 'ts': '1450501889.000074', 'team': '<teamID'}]'''
>>> print(literal_eval(s)[0]["text"])
This is my legit "test" 'message' with "lots" of 'quotation marks'

假设<channelID>之后的报价遗漏了。