我有字符串:
string myString = "^25121261064300000000000387?;XXXXXXXXXXXXXXXX=25121261064338700000?";
我需要拆分字符串才能获得只有符号;
和=
内的链。
预期结果为 XXXXXXXXXXXXXXXX
知道两个符号之间有多分开吗?
答案 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)
您可以使用SkipWhile
和TakeWhile
方法使用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[] {'=', ';'});
预期输出应位于数组的中间位置。