C#将字符串按每个相等(=)符号前的最后一个空格分割

C#将字符串按每个相等(=)符号前的最后一个空格分割,c#,split,C#,Split,如何按符号“=”前的最后一个空格拆分字符串 例如,我将输入字符串放在下面,并按空格分隔: string inputName = "id=4 issue=critical level project=ABC group=Group A"; string[] values = inputName.Split(' '); 结果如下,这是错误的: id=4 issue=critical level project=ABC group=Group A 但我所期望的是: id=4 issue

如何按符号“=”前的最后一个空格拆分字符串

例如,我将输入字符串放在下面,并按空格分隔:

string inputName = "id=4 issue=critical level project=ABC group=Group A";
string[] values = inputName.Split(' ');
结果如下,这是错误的:

id=4 
issue=critical 
level 
project=ABC 
group=Group 
A
但我所期望的是:

id=4 
issue=critical level 
project=ABC 
group=Group A

因此,我计划搜索符号“=”,然后按每个符号“=”之前的最后一个空格进行拆分。

您可以尝试使用正则表达式拆分它们:

string str = "id=4 issue=critical level project=ABC group=Group A";

var prefix = Regex.Matches(str, @"\w+=").ToList();

var values = Regex.Split(str, @"\w+=").Where(x => !string.IsNullOrEmpty(x)).ToList();

for (int i = 0; i < prefix.Count; i++)
{
    Console.WriteLine($"{prefix[i]}{values[i]}");
}
string str=“id=4问题=关键级别项目=ABC组=A组”;
var prefix=Regex.Matches(str,@“\w+=”).ToList();
var values=Regex.Split(str,@“\w+=”)。其中(x=>!string.IsNullOrEmpty(x)).ToList();
for(int i=0;i


T–Nguyễn的答案是最好的。 如果不知道正则表达式,我会做如下操作:

var byEquals = inputName.Split("=");
var result = new Dictionary<String, String>();
for(int i = 0; i < byEquals.Length -1; i++)
{
result[byEquals[i].Split(" ").Last()] = String.Join(" ", byEquals[i + 1].Reverse().Skip(1).Reverse())
}
var byEquals=inputName.Split(“=”);
var result=newdictionary();
for(int i=0;i
试试这个

string inputName = "id=4 issue=critical level project=ABC group=Group A";
string[] values = inputName.Split(' ');
List<string> output = new List<string>();

for (int i = 0; i < values.Length -1; i++)
{
    if (values[i].Contains('=') && !values[i + 1].Contains('='))
    {
         output.Add(values[i] + ' ' +values[i + 1]);
    }
    else if (!values[i].Contains('='))
    {
    }
    else
    {
        output.Add(values[i]);
    }
}

string[] requiredValues = output.ToArray();
string inputName=“id=4问题=关键级别项目=ABC组=A组”;
字符串[]值=inputName.Split(“”);
列表输出=新列表();
对于(int i=0;i