首页 > 解决方案 > 在这个相同的字符串数据中搜索数据并相互合并

问题描述

有一些字符串:

101,13,12,37511722,97,13,12,17515162,-9,17,-9,15,14,13,12,27515813,["ID","31477164","2000.00","100.00000000" ,"36477059","2020-11-02T18:52:50","23477065"]

我必须查找没有“”的数字并将它们与“”中的数字结合起来。我的号码没有“.”,而且它们有 3 个以上的字符。它应该如下所示:

37511722,"31477164"
17515162,"36477059"
27515813,"23477065"

有人能帮我吗?

标签: c#string

解决方案


你的问题不清楚,你的号码太多了;但是,如果你真的想

...必须在没有的情况下查找正整数至少 4 位长)""并将它们与""...中的数字组合

其中(粗体)条件是我的,您可以尝试借助正则表达式左右数字进行匹配;对于给定的数据:

 string data = "101,13,12,37511722,97,13,12,17515162,-9,17,-9,15,14,13,12,27515813,[\"ID_DYSPOZYCJI\",\"31477164\",\"2000.00\",\"100.00000000\",\"36477059\",\"2020 - 11 - 02T18: 52:50\",*\"23477065\"*] ";

您可以按如下方式放置left和匹配:right

  using System.Linq;
  using System.Text.RegularExpressions;

  ...

  var left = Regex
    .Matches(data, @"[0-9]{4,}")
    .Cast<Match>();
   
  var right = Regex
    .Matches(data, @"\""[0-9]{4,}\""")
    .Cast<Match>();

你可以结合leftright如果你愿意:

  var result = left
    .Zip(right, (l, r) => $"{l},{r}")
    .ToArray(); // <- let's have an array

  // You can further combine array into a single string 
  string report = string.Join(Environment.NewLine, result); 

我们来看一下:

  Console.Write(report);

结果:

37511722,"31477164"
17515162,"36477059"
27515813,"23477065"

推荐阅读