Java 如何使用正则表达式解析文本文件中包含的电子邮件?
我有一个文本文件,包含上述电子邮件中的文本。 我需要提取E2、E1、E0的值以及From:、Sent:、to:、Subject:的每个值: 我们能用正则表达式吗 我们可以在java中使用“^(从| Sent |到| Subject):(.*)”正则表达式。Java 如何使用正则表达式解析文本文件中包含的电子邮件?,java,regex,Java,Regex,我有一个文本文件,包含上述电子邮件中的文本。 我需要提取E2、E1、E0的值以及From:、Sent:、to:、Subject:的每个值: 我们能用正则表达式吗 我们可以在java中使用“^(从| Sent |到| Subject):(.*)”正则表达式。 但是,对于上面的文本示例,是否有任何全面的正则表达式?请查看原始消息源。您将看到,应该有一个统一的第一个标题,并且始终只有一个空行将标题与实际消息(您想要的部分)分隔开 您可以创建一个正则表达式来查找第一个标题后的第一个空行,然后提取正文。不
但是,对于上面的文本示例,是否有任何全面的正则表达式?请查看原始消息源。您将看到,应该有一个统一的第一个标题,并且始终只有一个空行将标题与实际消息(您想要的部分)分隔开
您可以创建一个正则表达式来查找第一个标题后的第一个空行,然后提取正文。不确定是否相关,但有些邮件阅读器(thunderbird等)将邮件存储在一个文本文件中,并使用确定的格式:
- 分隔行以
开头(即From后面跟一个空格而不是一列):这一行是邮件的开头From
- 分隔符后面是标题行。每个标题行的格式为: 头名:价值 其中HEADERNAME和value都是任意字符串。规则是HEADERNAME前面不能有空格,因为以空格开头的行是连续行
- headers组以空行终止
- 从行到下一行的剩余
是邮件的正文
邮箱
模块来为您完成此操作,并且:
- 已经过彻底的测试
- 有许多选项以适应邮箱格式的变化