如题:
string str1="app\\aa\\bb\\cc.dll";
string str2="app\\bb\\ee.exe";
string str3="app\\cc.bat";求一个算法,我传入不同的string值,都可以获得这样的结果:
如果是strl,用集合添加的应该是:list.add("app","aa","bb");
一下类似......
string str1="app\\aa\\bb\\cc.dll";
string str2="app\\bb\\ee.exe";
string str3="app\\cc.bat";求一个算法,我传入不同的string值,都可以获得这样的结果:
如果是strl,用集合添加的应该是:list.add("app","aa","bb");
一下类似......
str1.split("\\");如果有小数点的情况,进行第二步操作:
str.split(".");
取小数点左边的数据
List<string> list = new List<string>();
list.Add("app");
list.Add("abc");
list.Add("ab");
string s = "";
foreach (string str in list)
{
if (String.IsNullOrEmpty(s))
{
s = str;
}
else
{
s = s + @"\\" + str;
}
}
MessageBox.Show(s);
private void sub(string str)
{
string strs=str.Substring(0, str.IndexOf("\\"));
MessageBox.Show(strs);
try
{
string aa = str.Remove(0, str.IndexOf("\\")+1);
sub(aa);
}
catch { }
}不过,如果你讲TYR{}CATCH{}去掉了,就可以看到异常,判断一下就可以了。
string stemp = "app\\aa\\bb\\cc.dll";
MatchCollection mstr = Regex.Matches(stemp, @"([\w.\w]*)");
for (int i = 0; i < mstr.Count; i++)
{
list.add(mstr[i].Groups[1].Value);
}
曾经维护一个程序,解析命令用了Groups[1]这样的方式,后来命令模式稍微改一下,我这里Groups后面的数字全部乱套了...苦不堪言...
MatchCollection mstr = Regex.Matches(stemp, @"([\w\d.]+)");
可以有数字、字母、点号,出现一次