Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python中成功的正则表达式匹配创建字典_Python_Regex - Fatal编程技术网

从python中成功的正则表达式匹配创建字典

从python中成功的正则表达式匹配创建字典,python,regex,Python,Regex,我对regex很陌生。我试图逐行读取日志文件,并试图找到下面这样的模式,它们可以在行的任何位置,而不仅仅是开始 18514&email=dkekrf@yahoo.com"qwqw (need to extract only email=dkekrf@yahoo.com) "emailTo":"lolllll@gmail.com" pseId="12121212ffsd" 如何使用re.search同时搜索这三种模式?这里有一个解决方案。我希望,它能提取您想要的电子邮件地址 我无法创建

我对regex很陌生。我试图逐行读取日志文件,并试图找到下面这样的模式,它们可以在行的任何位置,而不仅仅是开始

18514&email=dkekrf@yahoo.com"qwqw  (need to extract only email=dkekrf@yahoo.com)
"emailTo":"lolllll@gmail.com"
pseId="12121212ffsd"

如何使用re.search同时搜索这三种模式?

这里有一个解决方案。我希望,它能提取您想要的电子邮件地址

我无法创建更精确的正则表达式,因为您没有提供有关日志文件的更多信息。我也不确定,如果我理解你的问题是正确的

import re

for line in open('filename', 'r'):
    firstPattern = re.search(r'email=(.*?)"', line)
    secondPattern = re.search(r'"emailTo":"(.*?)"', line)
    thirdPattern = re.search(r'pseId="(.*?)"', line)

    if firstPattern:
        print(firstPattern.group(1))
    elif secondPattern:
        print(secondPattern.group(1))
    elif thirdPattern:
        print(thirdPattern.group(1))

这里有一个解决方案。我希望,它能提取您想要的电子邮件地址

我无法创建更精确的正则表达式,因为您没有提供有关日志文件的更多信息。我也不确定,如果我理解你的问题是正确的

import re

for line in open('filename', 'r'):
    firstPattern = re.search(r'email=(.*?)"', line)
    secondPattern = re.search(r'"emailTo":"(.*?)"', line)
    thirdPattern = re.search(r'pseId="(.*?)"', line)

    if firstPattern:
        print(firstPattern.group(1))
    elif secondPattern:
        print(secondPattern.group(1))
    elif thirdPattern:
        print(thirdPattern.group(1))

我试图逐行读取日志文件。有三种模式:18514和电子邮件=dkekrf@yahoo.com(只需提取电子邮件)=dkekrf@yahoo.com)“电子邮件收件人”:lolllll@gmail.com“pseId=“12121212ffsd”两种模式适用于第一种模式:firstPattern=re.search(r'email=(*))\模式应以“示例:18514和电子邮件”结尾=dkekrf@yahoo.com“qwqw(只需提取电子邮件=dkekrf@yahoo.com)应该只匹配:dkekrf@yahoo.com其当前匹配:dkekrf@yahoo.com"iqwqwnow第一个模式应该与您的字符串匹配。我正在尝试逐行读取日志文件。有三种类型的模式:18514和电子邮件=dkekrf@yahoo.com(只需提取电子邮件)=dkekrf@yahoo.com)“电子邮件收件人”:lolllll@gmail.com“pseId=“121212ffsd”有两种模式适用于第一种模式:firstPattern=re.search(r'email=(.*?\s',line)。该模式应以“example:18514&email”结尾=dkekrf@yahoo.com“qwqw(只需提取电子邮件=dkekrf@yahoo.com)应该只匹配:dkekrf@yahoo.com其当前匹配:dkekrf@yahoo.com"IQWQWQW第一个模式如何与您的字符串匹配。您的标题与最后一个问题不匹配…您能更具体地说明您的输入和预期输出吗?您的标题与最后一个问题不匹配…您能更具体地说明您的输入和预期输出吗?