需要从 C# 中的字符串中提取字段

本文关键字:字符串 提取 字段 | 更新日期: 2023-09-27 18:31:55

>我从字符串中提取了 3 个可用字段。没有通用的分隔符,可以有空格和制表符。

首先,我正在做的是用"**"替换所有双空格和制表符

给定字符串:

cont = Gallipelle 04/04/2012 16.03.03 5678

我正在使用:

续。替换(" ", " **")。替换(" ", "**")。替换(" ", "**")。替换("**", ")。修剪()

答案变成了:

Gallipelle******04/04/2012 16.03.03** 5678*****

方法是否正确?如何从这里提取东西?我只需要字符串数据类型中的所有提取。

需要从 C# 中的字符串中提取字段

只需使用 String.Split

var fields = cont.Split(new[] { " ", "'t" },
                        StringSplitOptions.RemoveEmptyEntries);

添加StringSplitOptions.RemoveEmptyEntries可确保如果有多个连续的制表符和/或空格,它们在提取结果时将"计为一个"。

另一种选择是使用正则表达式。

您可以使用正则表达式组找出三个值名称、日期、数字。

组定义为 (?

所以你可以写

            Regex regex = new Regex("(?<name>(''S*))(''s*)(?<date>((''S*)''s(''S*)))(''s*)(?<number>(''d*))");
            Match match = regex.Match(yourString);
            if (match.Success)
            {
                string name = match.Groups["name"].Value;
                string date = match.Groups["date"].Value;
                string number = match.Groups["number"].Value;
            }

''s* 匹配包含制表符的空格序列。''S* 匹配非空格字符的序列。''d* 匹配数字序列。

(new Regex("''s+")).Split(yourstring)

http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx

var myText="cont = Gallipelle 04/04/2012 16.03.03 5678";
var splitString=myText.split(" ");
// splitString[1] == Gallipelle 
// splitString[2] ==  04/04/2012
// splitString[3] == 16.03.03 
// splitString[4] == 5678

No.无需将其替换为任何其他分隔符。您可以使用 String 的拆分函数并给出"空格"作为分隔符。例如,在 VB.Net:

将值暗为 String() = cont.split(CChar(" "))

这将为您提供一个字符串数组,您可以访问其值:值(0),值(1)和值(2)