如何删除字符串数组中的单词

时间:2016-07-13 06:18:15

标签: c# replace

如何删除字符串数组中的单词

var array= new string []
               {"windows!!1!!","dual+sim!!3!!","32+gb!!2!!","Intel+i5!!2!!"};

输出数组

var Output-array= new string []
                   {"windows","dual sim","32 gb","Intel i5"};

如何在C#的单行代码中执行此操作

2 个答案:

答案 0 :(得分:5)

假设您的模式始终为!![one digit]!!

正则表达式应该是解决这个问题的最简单方法。并Replace("+", " ")用空格替换+个字符。

string[] array = new string[] { "windows!!1!!", "dual+sim!!3!!", "32+gb!!2!!", "Intel+i5!!2!!" };
string[] result = array.Select(x => System.Text.RegularExpressions.Regex.Replace(x, @"!!\d!!", "").Replace("+", " ")).ToArray();

答案 1 :(得分:0)

虽然不是单一的班轮。无需了解RegEx,以及应该在您的工具包中的扩展方法。只有假设才是“!!”作为你想要提取的字符串的终结者。

/// <summary>
/// Get string value before [first] a.
/// </summary>
public static string Before(this string value, string a)
{
   int posA = value.IndexOf(a);
   if (posA == -1)
   {
       return "";
   }
   return value.Substring(0, posA);
}

var myList = new List<string>();
foreach var element in array
{
    myList.Add(element.Before("!!"));
}

var outPutArray = myList.ToArray();