正则表达式在<>之间获取值

时间:2019-10-11 11:17:39

标签: python regex python-3.x

现在尝试了一段时间,但似乎无法在python中使用RE正确获取它。

我有这个作为回报

Kinepolis Ticket <info@domain.com>

但是我想将名称和电子邮件存储在单独的变量中。因此结果将是:

name = Kinepolis Ticket  
email = info@domain.com

2 个答案:

答案 0 :(得分:2)

您可以使用

import re
string = "Kinepolis Ticket <info@domain.com>"

rx = re.compile(r'([^<>]+)\s<([^<>]+)>')
m = rx.search(string)
if m:
    name, email = m.groups()
    print(name, email)


或-自Python 3.8起:

import re
string = "Kinepolis Ticket <info@domain.com>"

if (m := re.search(r'([^<>]+)\s<([^<>]+)>', string)):
    # ^^^ walrus
    name, email = m.groups()
    print(name, email)

答案 1 :(得分:1)

>>> import re
>>> m = re.match('([^<>]*)<([^<>]*)>','Kinepolis Ticket <info@domain.com>')
>>> name = m.group(1).strip()
>>> email = m.group(2).strip()
>>> print("name={},email={}".format(name,email))
name=Kinepolis Ticket,email=info@domain.com