从文本

时间:2017-02-04 12:11:37

标签: c# regex text-manipulation

我有大量来自外部聚合系统的数据。与我的问题相关的数据部分是字符串数组。示例(不是真实的,但非常具有说明性):

  1. 型号:TOYOTA COROLLA VIN:ABC123年份:2012颜色:黑色
  2. 2013年白色KIA RIO,传输:4AT
  3. 类型:TruckModel:MANYear:2010VIN:QWE123注册号:AZ12345
  4. 30头奶牛品种#137
  5. 25头Shello品种的奶牛编号为#783
  6. 字符串的总数接近100M。它们的主要目的是向网站上的用户显示。

    如您所见,所有字符串都自然地包含一些键值对的模式,或者可以转换为这种形式。当聚合器从另一个系统获取这些数据时,它会以某种方式丢弃分隔符。我在一个字符串中遇到了20多个这样的键值对。

    第一个问题是如何在删除分隔符的位置恢复分隔符(\ r \ n)。另一个问题是如何将,替换为\ r \ n,只有它是键值对的真实分隔符而不是值的一部分。值部分内的逗号不会被转义。

    这两个问题导致模式提取,然后通过正则表达式替换。起初我打算手工提取图案,但这非常费时,并没有涵盖我经历的一些边缘案例。

    我为这些问题寻找程序化解决方案。

    字符串作为更大数据库的一部分存储在MSSQL表中。数据处理平台是用C#编写的。

0 个答案:

没有答案