【发布时间】:2020-07-07 03:42:57
【问题描述】:
我有一个解析电子邮件的过程。我们用来检索和存储正文内容的软件似乎不包含换行符,所以我最终得到了这样的东西 -
Good afternoon, [line-break] this is my email. [line-break] Info: data [line-break] More info: data
我的 [line-break] 括号是换行应该所在的位置。然而,当我们提取正文时,我们得到的只是文本。这使得在没有换行符的情况下解析文本变得很困难。
基本上,我需要做的是解析每个[Info]: [Data]。我可以找到[Info] 标签的开始位置,但是没有换行符,我很难知道与该信息关联的数据应该在哪里结束。电子邮件来自 Windows。
有什么方法可以获取纯文本并将其编码为包含换行符的某种方式?
电子邮件内容示例
Good Morning, Order: 1234 The Total: $445 When: 7/10 Type: Dry
Good Morning, Order: 1235 The Total: $1743 Type: Frozen When: 7/22
Order: 1236 The Total: $950.14 Type: DRY When: 7/10
The Total: $514 Order: 1237 Type: Dry CSR: Tim W
Sorry, below is your order: Order: 1236 The Total: $500 When: 7/10 Type: Dry Creator: Josh A. Thank you
现在,我需要遍历电子邮件并解析出 Order、Total 和 Type 的值。另一个占位符:值是不相关且随机的。
【问题讨论】:
-
电子邮件是来自 Windows 还是 Linux? Linux 有不同的回报,这可能解释了这个问题。
-
@jdweng Windows.
-
好吧,
Info:和More info:是常量标签(或显示常量/可理解/可预测模式的元素)吗?你确定你没有任何 remains 的原始换行符(你是否解析了字节值)?你不能要求修改这个程序的功能吗? -
它们是我可以在电子邮件中查找的常量标签。我们使用的程序不是我们的应用程序,因此无法更改提取方式。
-
那么,如果你有可预测的插入点,你能
IndexOf()这些占位符吗?或者使用正则表达式,如果您在每个 placeholder 中有特定元素,则更有用?