簡體   English   中英

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

[英]Need to extract fields from a string in C#

我從字符串中提取了3個可用字段。 沒有通用的分隔符,可以有空格和制表符。

首先,我正在做的是用'**'替換所有雙重空格和標簽

給定字符串:

cont = Gallipelle 04/04/2012 16.03.03 5678

我在用:

cont.Replace(“”,“**”)。替換(“”,“**”)。替換(“”,“**”)。替換(“**”,“”).Trim()

答案變成:

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

方法是否正確? 如何從這里提取東西? 我只需要字符串數據類型中的所有提取。

只需使用String.Split

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

添加StringSplitOptions.RemoveEmptyEntries可確保在提取結果時,如果有多個連續的選項卡和/或空格,它們將“計為一個”。

另一種選擇是使用正則表達式。

您可以使用正則表達式組來查找三個值名稱,日期,數字。

組被定義為(?<group_name> <regex_expr>)

所以你可以寫

            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

不需要。不需要用任何其他分隔符替換它。 您可以使用String的split函數並將'space'作為分隔符。 例如在VB.Net中:

昏暗值As String()= cont.split(CChar(“”))

這將為您提供一個字符串數組,您可以訪問其值:value(0),value(1)和value(2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM