如何在没有 Regex 或 Linq 的情况下拆分字符串但将引号内的文本保持在一起
How can I split a string but keep text within quotes together without Regex or Linq
我想拆分一个字符串并将文本放在引号内,这样我就可以在命令行中正确解析参数。但是,COSMOS 不支持 Regex 和 Linq。
我需要一些方法来拆分字符串,如下所示:
This is "a very" important string "doing string things"
放入包含以下内容的数组:
{"This", "is", "a very", "important", "string", "doing string things"}
我能找到的最接近解决我问题的方法是 this answer. 但是,我不知道如何将其转换为数组,因为我不知道如何使用 IEnumerals。
我首先拆分 " 然后 trim 最后使用不在 " " 中的模式拆分然后将它们添加到列表字符串
public string[] toArr(string word){
List<string> result=new List<string>();
var split1=word.Split('"');
for(int i=0 ; i<split1.Length ;i++){
split1[i]=split1[i].Trim();
}
for(int i=0;i<split1.Length;i++){
if(i%2==0){
var split2=split1[i].Split(' ');
foreach(var el in split2){
result.Add(el);
}
}
else{
result.Add(split1[i]);
}
}
string[] arr=new string[result.Count];
for(int i=0;i<result.Count;i++){
arr[i]=result[i];
}
return arr;
}
我想拆分一个字符串并将文本放在引号内,这样我就可以在命令行中正确解析参数。但是,COSMOS 不支持 Regex 和 Linq。
我需要一些方法来拆分字符串,如下所示:
This is "a very" important string "doing string things"
放入包含以下内容的数组:
{"This", "is", "a very", "important", "string", "doing string things"}
我能找到的最接近解决我问题的方法是 this answer. 但是,我不知道如何将其转换为数组,因为我不知道如何使用 IEnumerals。
我首先拆分 " 然后 trim 最后使用不在 " " 中的模式拆分然后将它们添加到列表字符串
public string[] toArr(string word){
List<string> result=new List<string>();
var split1=word.Split('"');
for(int i=0 ; i<split1.Length ;i++){
split1[i]=split1[i].Trim();
}
for(int i=0;i<split1.Length;i++){
if(i%2==0){
var split2=split1[i].Split(' ');
foreach(var el in split2){
result.Add(el);
}
}
else{
result.Add(split1[i]);
}
}
string[] arr=new string[result.Count];
for(int i=0;i<result.Count;i++){
arr[i]=result[i];
}
return arr;
}