【问题标题】:Extract part of the string [duplicate]提取部分字符串[重复]
【发布时间】:2015-04-27 17:38:36
【问题描述】:

我有几千行字符串类型的数据,我需要的是提取AS之后的字符串。例如这一行:

CASE  END AS NoHearing,

我想要的是NoHearing,

这一行:

 CASE 19083812 END AS NoRequset

我需要的是NoRequset

到目前为止,我已经尝试了几种方法,但没有成功。不能使用.split,因为AS不是Char类型。

【问题讨论】:

  • 是否可以安全地假设“AS”只出现一次(并且必须出现,没有行)?如果不是,那“END AS”呢?
  • 由空格' ' 分割并取.Last() 结果。
  • @Pierre-LucPineault 你的方法对我来说非常有效。

标签: c# string


【解决方案1】:

如果这将是 AS 出现在字符串中的唯一方式:

noRequestString = myString.Substring(myString.IndexOf("AS") + 3);

【讨论】:

  • 感谢@juharr - 感谢您的更正,因为我已经习惯了 UI。
【解决方案2】:

我使用正则表达式提取 AS 和逗号之间的所有内容:

string data = @"
CASE  END AS NoHearing,
CASE 19083812 END AS NoRequset
";

var items = Regex.Matches(data, @"(?:AS\s+)(?<AsWhat>[^\s,]+)")
                 .OfType<Match>()
                 .Select (mt => mt.Groups["AsWhat"])
                 .ToList();


Console.WriteLine (string.Join(" ", items)); // NoHearing NoRequset

【讨论】:

    猜你喜欢
    • 2012-03-28
    • 2018-01-13
    • 2018-11-07
    • 1970-01-01
    • 2022-01-18
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    相关资源
    最近更新 更多