我有一个类似于
的字符串'l','e','t','t','e','r','s'
或
('l','e','t','t','e','r','s')
我知道这应该很容易,但我不知道如何。我知道用{“替换'
和,
是一个选项,因为两者都是结果字符串中的非法字符,但我觉得这是一种更好的方法。
C#.NET中的简单方法是什么?
答案 0 :(得分:10)
这取决于您的输入格式究竟是什么。
如果你有一个看起来像这样的字符串,你可以使用chained-Replace:
result = "('l','e','t','t','e','r','s')".Replace("(", String.Empty).Replace("'", String.Empty);
或正则表达式删除您不想要的所有内容(在这种情况下,所有内容都不是小写或大写字母:
result = RegEx.Replace("('l','e','t','t','e','r','s')", "[^a-zA-Z]+", String.Empty);
更容易使用String的一个构造函数,它接受字符数组:
result = new String(new Char[] {'l','e','t','t','e','r','s'});
答案 1 :(得分:1)
除非性能至关重要,否则您最好只使用简单的替换。你可以写的最短的替换是:
string output = Regex.Replace(input, "\W+", "");
请注意,\W
不会删除下划线或数字。仅保留英文字母,您可以使用:
string output = Regex.Replace(input, "[^a-zA-Z]+", "");
答案 2 :(得分:0)
好吧,我认为只用“/”替换'/'是最好的解决方案,但是如果你为了过早优化而不必要地复杂化你可以对字母字符进行正则表达式匹配然后连接所有字符串比赛一起。
答案 3 :(得分:0)
尝试使用RegEx(System.Text.RegularExpressions)。
似乎你只想删除字母字符
public static string StripNonAlphabets(string input)
{
Regex reg = new Regex("[^A-Za-z]");
return reg.Replace(str, string.Empty);
}
此方法应返回您要查找的内容