【问题标题】:Extract and format a part of String in C#在 C# 中提取和格式化字符串的一部分
【发布时间】:2017-10-01 13:25:31
【问题描述】:

我想知道是否有人可以帮助我使用正则表达式或子字符串选项。

我有一个字符串:

Line1 ("Application", "People", "people DB", "PP01", 1, X, "Y")]

从上面,想提取并显示:PP01 - People

【问题讨论】:

  • 线条的格式和大小总是相同吗?
  • @Satya 你的意思是说你想要字母数字字符串还是那两个字符串?
  • 您是指逗号分隔列表中的第二项和第四项吗?你没有很好地解释你需要什么。
  • @Deepak:请不要在别人的问题中添加 please-help 乞求。我们尝试在此处删除聊天,而不是将其添加到 :-)
  • @halfer:是的,我很抱歉,应该将我的代码连同我的问题一起发布。我过去有过,但这次走神了,但下次会做。感谢提醒。

标签: c# regex substring


【解决方案1】:

假设你所有的行的结构都是一样的..

Line1("Application", "People", "people DB", "PP01", 1, X, "Y")]
Line2("Application", "People", "people DB", "PP02", 2, X, "Y")]
Line3("Application", "People", "people DB", "PP03", 3, X, "Y")]

.. 你也可以使用字符串方法 .Replace() 和 .Split():

string str = "\"Application\", \"People\", \"people DB\", \"PP01\", 1, X, \"Y\"";
string[] parts = str.Replace("\"", string.Empty)
                    .Split(new string[] { ", " }, StringSplitOptions.None);

Console.Write(parts[3] + " - " + parts[1]);

输出将是:PP01 - People

【讨论】:

  • 谢谢。这行得通。我做了 str.Replace 部分,但对 .Split 有困难。你推荐。工作。谢谢!
【解决方案2】:

你可以使用正则表达式来解决这个问题:

.*?\(.*?, "(?<Group>.*?)",.*?, "(?<WhatEverPP01Is>.*?)",.*

然后你可以匹配正则表达式:

Regex regex = new Regex(".*?\\(.*?, \"(?<Group>.*?)\",.*?, \"(?<WhatEverPP01Is>.*?)\",.*");

var match = regex.Match("YourStringToMatch");

if (match.Success)
{
    // Here you can access the group values:
    var groupValue = match.Groups["Group"].Value;
    var whateverPP01Is = match.Groups["WhatEverPP01Is"].Value;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    相关资源
    最近更新 更多