在Python中,如何从一个字符串返回多个匹配的子字符串

时间:2019-04-03 14:33:39

标签: python

我在搜索长字符串的电子邮件地址时遇到问题。 我需要返回所有匹配项,而不仅仅是返回。

我尝试过:

def email():
    try:
        a = re.search(r'abc.{1,11}@xyz.co.za|def@xyz.co.za',string)
        return a.group(0)   
    except Exception:
        return 1

def email():
    try:
        a = re.search(r'abc.{1,11}@xyz.co.za' or 'def@xyz.co.za',string)
        return a.group(0)   
    except Exception:
        return 1

def email():
    try:
        a = re.search('abc.{1,11}@xyz.co.za',string)
        b = re.search('def@xyz.co.za',string)
        return a.group(0),b.group(0)   
    except Exception:
        return 1

以及其他不同组合。

从第一个脚本中,我收到电子邮件地址的第一个匹配项。 从第二个脚本中,我只收到一场比赛 从第三个脚本中,我收到所有匹配项。我的问题是,如果其中之一不匹配,则返回1。

我想看到的是,无论匹配多少,它都会返回所有匹配的电子邮件地址。

1 个答案:

答案 0 :(得分:0)

我最终这样做是这样的:

def mailbox():
   try:
        a = re.findall(r'abc.{1,11}@xyz.co.za|def@xyz.co.za',string)
        return set(a)  
    except Exception:
        return 1

唯一的问题是,如果我什么都不匹配,它将返回set()