首页 > 解决方案 > 如何从字符串中删除字符列表

问题描述

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

例如,我有字符串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(), "");
}

标签: c#regexstringlistreplace

解决方案


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

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

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


推荐阅读