拆分两个符号之间的字符串

时间:2016-06-13 21:23:58

标签: c# string split

我有字符串:

string myString = "^25121261064300000000000387?;XXXXXXXXXXXXXXXX=25121261064338700000?";

我需要拆分字符串才能获得只有符号;=内的链。

预期结果为 XXXXXXXXXXXXXXXX

知道两个符号之间有多分开吗?

4 个答案:

答案 0 :(得分:5)

你可以这样说,在特定字符上分两次

string result = (myString.Split(';')[1]).Split('=')[0]

答案 1 :(得分:2)

基于MSDN

using System;
using System.Text.RegularExpressions;

class Example 
{
   static void Main() 
   {
      string text = "^25121261064300000000000387?;XXXXXXXXXXXXXXXX=25121261064338700000?";
      string pat = @"\;(.*)\=";

      Regex r = new Regex(pat, RegexOptions.IgnoreCase);

      Match m = r.Match(text);
      int matchCount = 0;
      while (m.Success) 
      {
         Console.WriteLine("Match"+ (++matchCount));
         for (int i = 1; i <= 2; i++) 
         {
            Group g = m.Groups[i];
            Console.WriteLine("Group"+i+"='" + g + "'");
            CaptureCollection cc = g.Captures;
            for (int j = 0; j < cc.Count; j++) 
            {
               Capture c = cc[j];
               System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
            }
         }
         m = m.NextMatch();
      }
   }
}

答案 2 :(得分:2)

您可以使用SkipWhileTakeWhile方法使用LINQ:

string myString = "^25121261064300000000000387?;XXXXXXXXXXXXXXXX=25121261064338700000?";
var result = string.Join("",myString.SkipWhile(c => c != ';')
                                    .Skip(1).TakeWhile(c=>c != '='));

输出:

  

XXXXXXXXXXXXXXXX

答案 3 :(得分:1)

为什么没有人提到 string.Split 方法?

string[] splited = myString.Split(new char[] {'=', ';'});

预期输出应位于数组的中间位置。