如何从字符串中删除字符列表

时间:2018-09-07 06:15:34

标签: c# regex string list replace

如何从字符串中删除特定的字符列表?

例如,我有一个字符串Multilanguage File07,并且想要删除所有元音,空格和数字以获取字符串MltlnggFl

有没有比使用foreach循环更短的方法了?

string MyLongString = "Multilanguage File07";
string MyShortString = MyLongString;
char[] charlist = new char[17]
  { 'a', 'e', 'i', 'o', 'u',
    '0', '1', '2', '3', '4', '5',
    '6', '7', '8', '9', '0', ' ' };
foreach (char letter in charlist)
{
    MyShortString = MyShortString.Replace(letter.ToString(), "");
}

4 个答案:

答案 0 :(得分:2)

使用此代码替换字符串中的字符列表:

using System.Text.RegularExpressions;
string MyLongString = "Multilanguage File07";
string MyShortString = Regex.Replace(MyLongString, "[aeiou0-9 ]", "");

结果:
Multilanguage File07 => MltlnggFl
Text from which some chars should be removed 12345 => Txtfrmwhchsmchrsshldbrmvd

其工作原理的说明:
我在这里使用的Regex表达式是由方括号[]
定义的独立字符的列表。 => [aeiou0-9 ]
Regex.Replace()遍历整个字符串并查看每个字符(如果它与正则表达式中的字符之一匹配)。
每个匹配的字母都将替换为一个空字符串(“”)。

答案 1 :(得分:1)

如何?

| id | parent_name| parent_name_2 |
| 5 | NULL | NULL |

答案 2 :(得分:0)

尝试以下模式:(?|([aeyuio0-9 ]+))。用空字符串替换它,您将得到想要的结果。

我使用了分支重置(?|...),因此所有字符都被捕获为一组,以便于操作。

Demo.

答案 3 :(得分:0)

public void removeVowels()
{
       string str = "MultilanguAge File07";
       var chr = str.Where(c => !"aeiouAEIOU0-9 ".Contains(c)).ToList();
       Console.WriteLine(string.Join("", chr));
}

第一行:创建愿望字符串变量。

第二行::使用linq忽略元音单词[大写字母,小写字母,0-9数字和空格]并转换为列表。

第三行:借助string.join函数将chr列表合并为一个行字符串。

结果:MltlnggFl7

注意: removeVowels不仅可用于小写字母,1-9数字和空白,而且还可以从字符串中删除大写字母。