最简单的组合方式';l'';e'';t'';t'';e'';r'';s';?C#/.NET

最简单的组合方式';l'';e'';t'';t'';e'';r'';s';?C#/.NET,c#,.net,csv,C#,.net,Csv,我有一根类似于 'l','e','t','t','e','r','s' 或 我知道这应该很容易,但我不知道怎么做。我知道用“”替换“和,是一种选择,因为这两个字符在结果字符串中都是非法字符,但我觉得有更好的方法 C#.NET中最简单的方式是什么,这取决于您的输入格式 如果您有一个如下所示的字符串,则可以使用链式替换: result = "('l','e','t','t','e','r','s')".Replace("(", String.Empty).Replace("'", String.E

我有一根类似于

'l','e','t','t','e','r','s'

我知道这应该很容易,但我不知道怎么做。我知道用“”替换
是一种选择,因为这两个字符在结果字符串中都是非法字符,但我觉得有更好的方法


C#.NET中最简单的方式是什么,这取决于您的输入格式

如果您有一个如下所示的字符串,则可以使用链式替换:

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);
更简单的方法是使用字符串的一个构造函数,它接受字符数组:

result = new String(new Char[] {'l','e','t','t','e','r','s'});

嗯,我想用“”替换“/”字符是最好的解决方案,但如果您喜欢为了过早优化而不必要地使事情复杂化,您可以对字母字符进行正则表达式匹配,然后将所有匹配连接在一起。

除非性能至关重要,否则您最好只使用简单的替换。您可以编写的最短替换是按照以下思路:

string output = Regex.Replace(input, "\W+", "");
请注意,
\W
不会删除下划线或数字。如果仅保留英文字母,请使用:

string output = Regex.Replace(input, "[^a-zA-Z]+", "");
尝试使用正则表达式(System.Text.RegularExpressions)

似乎你只想去掉字母字符

public static string StripNonAlphabets(string input)
{
    Regex reg = new Regex("[^A-Za-z]");

    return reg.Replace(str, string.Empty);
}

此方法应返回您要查找的内容。

这是一个包含以下内容的字符串:
“'l'、'e'、't'、't'、'e'、'r'、's'”
,还是一个字节数组?迭代字符并从索引x开始每隔4个字符“提取”,其中x由序列是否以开头确定(“?哦,最简单的?我想你想要的是不必要的聪明..最简单的是绝对使用替换/regex。我想CSV可以用于这种类型的东西…为什么所有的东西都告诉我使用regex!我想你在第二个选项(regex)中有一个额外的插入符号。删除
^
(或者插入符号将保留在字符串中)并将
*
更改为
+
(或者正则表达式将在字符串中的每个位置上“匹配”,因为它匹配零长度值。)@Sixten Otto,Blix:谢谢!关于性能:您的代码应该非常高效。不要低估正则表达式。True=)更糟糕的是高估了它们;)编写大约20行比正则表达式快10倍的代码并不难(尽管使用预编译正则表达式可能只比自定义解决方案慢3-5倍)
public static string StripNonAlphabets(string input)
{
    Regex reg = new Regex("[^A-Za-z]");

    return reg.Replace(str, string.Empty);
}