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
下面的东西也适用于您,但对于这一点,我只是在您的EOS(字符串结尾)后添加了一个空格字符。
string s = "id=4 issue=critical level project=ABC group=Group A";
s = s.Trim();
s += " "; //TO MATCH THE REGEX
Regex regex = new Regex(@"\w+=[\w\s]+\s");
foreach (Match match in regex.Matches(s))
{
Console.WriteLine(match.Value);
}
最好使用不同的分隔符,而不是空格,如
、
或代码>。因此,请保留以下字符串-“id=4,issue=critical level,project=ABC,group=group A”
,然后拆分。是的,但用户坚持以这种方式输入数据:(嗨,如果对于prefix now,我想只取前面的单词=而不是id=只取id而不是issue=只取issue,那么Console.WriteLine的最后一个结果(前缀[i]+“@”+值[i]}”);如下所示:id@4 issue@critical水平仪project@ABC group@Group