1

我正在尝试从从 PDF 中提取的文本中解析出行项目。提取的文本格式很差,每页只有一个长字符串。没有任何有用的分隔符,但行以两个字符串之一开始。我已经使用包含这两个字符串的字符串数组设置了 Split(),但我需要知道元素在哪个分隔符上进行拆分。

我找到了这个链接,但我在 RegEx 方面并不擅长。有人可以协助编写 RegEx 字符串吗?

    var lineItems = page.PageText.Split(new string[] { "First String Delimiter", "Second String Delimiter" }, StringSplitOptions.None);

我需要知道的是 element[x] 是“第一个字符串定界符”还是“第二个字符串定界符”的结果。

编辑:我不在乎 Regex 是否是解决方案。Linq 可能同样适合。Linq 是在我获得学位后才出来的,所以我对它同样不熟悉。

想象一个页面,其中大约 15-20 个端到端作为一个没有回车的长字符串返回:由于它们都以“公司贸易支付信用”或“预授权 ACH 信用”开头,我可以拆分这些,但我需要知道它是什么类型。

Preauthorized ACH Credit (165) 10,000.00 489546541 0000000000 Text 一些关于交易的详细描述 - Preauthorized ACH Credit (165) 5,310.99 8465498461 0000000000 Text 另一个详细描述 Corporate Trade Payment Credit (165) 4,933.17 840780000000075

4

2 回答 2

1

为什么不只运行两次拆分,一次使用第一个分隔符,然后再次使用第二个分隔符?

var firstDelimiterItems = page.PageText.Split("First String Delimiter");

var secondDelimiterItems = page.PageText.Split("Second String Delimiter");
于 2013-07-02T16:03:08.777 回答
1

有时最简单的解决方案是最好的解决方案。不知道为什么我没有早点想到这一点。

    var pageText = page.PageText.Replace("Corporate Trade Payment", "\r\nCorporate Trade Payment").Replace("Preauthorized ACH Credit", "\r\nPreauthorized ACH Credit");

这给了我他们自己的行上的行项目。不需要正则表达式。感谢大家的帮助,如果您找到使用正则表达式解决原始问题的方法,请发布。我总是努力学习更多。

于 2013-07-03T14:57:39.487 回答