簡體   English   中英

卷曲括號c#拆分問題

[英]Curly brackets c# split issue

我有一個字符串, emailid ,格式如下所示:

string s = "{email:ss@ss.com}{id:AB12345}";

我只想刪除大括號,並從變量中的上述字符串中提取電子郵件和id,如下所示。

string email = "ss@ss.com";
string id = "AB12345";

我試過string.Format和其他格式。 由於電子郵件和ID大小可能會有所不同,我找不到解決方案。

使用可以使用正則表達式

var match = Regex.Match("{email:ss@ss.com}{id:AB12345}", @"\{email:(.+)\}\{id:(.+)\}");
var email = match.Groups[1].Value;
var id = match.Groups[2].Value;

PS:模式(.+)表示Email和Id至少有1個字符,否則匹配將找不到電子郵件和id,如果這些可以為空,則可以將其更改為(.*)

使用Split您可以像這樣實現:

var parts = s.Split(new [] { '{', '}' }, StringSplitOptions.RemoveEmptyEntries);

string email = parts[0].Split(':')[1];
string id = parts[1].Split(':')[1];

正則表達式將是一個很好的解決方案,但由於我不熟悉它,你可以使用SubstringIndexOf方法;

string s = "{email:ss@ss.com}{id:AB12345}";
string email = s.Substring(s.IndexOf(':') + 1, 
                           s.IndexOf('}') - s.IndexOf(':') - 1); // ss@ss.com
s = s.Substring(s.IndexOf('}') + 1);
string id = s.Substring(s.IndexOf(':') + 1, 
                        s.IndexOf('}') - s.IndexOf(':') - 1); // AB12345

這是一個demonstration

string s = "{email:ss@ss.com}{id:AB12345}";
string[] str = s.Split("}{".ToArray());
string email = str[1].Replace("email:", "");
string id = str[3].Replace("id:", "");
  private static void Main(string[] args)
        {

            string s = "{email:ss@ss.com}{id:AB12345}";
            string email = string.Empty;
            string id = string.Empty;
            FillValue(s, out email, out id);
            Console.WriteLine("email:{0}\nid:{1}",email,id);
              Console.ReadKey();
        }

        private static void FillValue(string s, out string email, out string id)
        {
            var values = s.Replace("}{", "$").Replace("{",string.Empty).Replace("}",string.Empty).Split('$');
            email = values[0].Split(':')[1];
            id = values[1].Split(':')[1];
        }

暫無
暫無

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

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