Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用String.Replace()方法删除多余的空格和许多标记_C#_.net_Asp.net - Fatal编程技术网

C# 使用String.Replace()方法删除多余的空格和许多标记

C# 使用String.Replace()方法删除多余的空格和许多标记,c#,.net,asp.net,C#,.net,Asp.net,我有一个长字符串,其中包含、和。我想清除所有这些标记和空格中的字符串。如何使用String.Replace()方法完成。我现在正在单独做,它正在工作,但有没有一种方法可以不使用replace()方法立即完成 String.Replace(“,”).Replace(“”,”).Replace(“”,”) 它为我提供了干净的代码,但我正在寻找一个通用的解决方案,这意味着如果我有更多的标签(10到20个)要过滤,那么如何高效地进行过滤。替换总而言之很好,您可以有一个标签列表,并按照以下操作: for

我有一个长字符串,其中包含


。我想清除所有这些标记和空格中的字符串。如何使用String.Replace()方法完成。我现在正在单独做,它正在工作,但有没有一种方法可以不使用replace()方法立即完成

String.Replace(“,”).Replace(“”,”).Replace(“
”,”)

它为我提供了干净的代码,但我正在寻找一个通用的解决方案,这意味着如果我有更多的标签(10到20个)要过滤,那么如何高效地进行过滤。

替换总而言之很好,您可以有一个标签列表,并按照以下操作:

foreach(var tag in tags)
{
   str = str.Replace(tag, "");
}

“替换”总的来说是好的,您可以有一个标签列表,并按照以下操作:

foreach(var tag in tags)
{
   str = str.Replace(tag, "");
}

您可以编写一个扩展方法,使其易于使用—现在使用的是单行程序

string[] token = { "foo", "bar" };
string text = "blaah foo bar text";

text = text.ReplaceAll(token, "");


public static class StringHelper
{
    public static string ReplaceAll(this string text, 
                                    string[] token, 
                                    string replacement)
    {
        string newText = text;

        foreach (string s in token)
            newText = newText.Replace(s, replacement);

        return newText;
    }
}

您可以编写一个扩展方法,使其易于使用—现在使用的是单行程序

string[] token = { "foo", "bar" };
string text = "blaah foo bar text";

text = text.ReplaceAll(token, "");


public static class StringHelper
{
    public static string ReplaceAll(this string text, 
                                    string[] token, 
                                    string replacement)
    {
        string newText = text;

        foreach (string s in token)
            newText = newText.Replace(s, replacement);

        return newText;
    }
}

您可以构建一个由所有要替换的标记组成的正则表达式替换模式,例如
tag1 | tag2
,并使用。您应该转义它们,以防止任何字符被错误地解释为regex元字符

例如:

string input = "<p>Hello,&nbsp;World<br>Foo<br>Bar</p>";
string[] replaceItems = { "<p>", "&nbsp;", "<br>" };
if (replaceItems.Length > 0)
{
    string pattern =
        String.Join("|", replaceItems.Select(s => Regex.Escape(s)).ToArray());
    string result = Regex.Replace(input, pattern, String.Empty);
    Console.WriteLine(result);
}
else
{
    // nothing to replace
    Console.WriteLine(input);
}
string input=“Hello,World
Foo
Bar

”; 字符串[]replaceItems={“”,“”,“
”}; 如果(replaceItems.Length>0) { 字符串模式= String.Join(“|”),replaceItems.Select(s=>Regex.Escape(s)).ToArray(); string result=Regex.Replace(输入,模式,string.Empty); 控制台写入线(结果); } 其他的 { //无可取代 控制台写入线(输入); }
如果需要替换不区分大小写,请使用
RegexOptions.IgnoreCase
选项:
Regex.Replace(输入,模式,”,RegexOptions.IgnoreCase)


在.NET 4.0中,您可以放弃
ToArray()
调用。

您可以构建一个由所有要替换的标记组成的正则表达式替换模式,例如
tag1 | tag2
,并使用。您应该转义它们,以防止任何字符被错误地解释为regex元字符

string[] items= { "<p>", "&nbsp;", "<br>" };

foreach (string itemtodelete in items)
{
    test=test.Replace(itemtodelete,"");
}
例如:

string input = "<p>Hello,&nbsp;World<br>Foo<br>Bar</p>";
string[] replaceItems = { "<p>", "&nbsp;", "<br>" };
if (replaceItems.Length > 0)
{
    string pattern =
        String.Join("|", replaceItems.Select(s => Regex.Escape(s)).ToArray());
    string result = Regex.Replace(input, pattern, String.Empty);
    Console.WriteLine(result);
}
else
{
    // nothing to replace
    Console.WriteLine(input);
}
string input=“Hello,World
Foo
Bar

”; 字符串[]replaceItems={“”,“”,“
”}; 如果(replaceItems.Length>0) { 字符串模式= String.Join(“|”),replaceItems.Select(s=>Regex.Escape(s)).ToArray(); string result=Regex.Replace(输入,模式,string.Empty); 控制台写入线(结果); } 其他的 { //无可取代 控制台写入线(输入); }
如果需要替换不区分大小写,请使用
RegexOptions.IgnoreCase
选项:
Regex.Replace(输入,模式,”,RegexOptions.IgnoreCase)

在.NET4.0中,您可以删除
ToArray()
调用。

string[]项={“”,“,”
”;
string[] items= { "<p>", "&nbsp;", "<br>" };

foreach (string itemtodelete in items)
{
    test=test.Replace(itemtodelete,"");
}
foreach(stringitemtodeleteinitems) { test=test.Replace(itemtodelete,“”); }
string[]items={“”,“,”
“}; foreach(stringitemtodeleteinitems) { test=test.Replace(itemtodelete,“”); }
@所有答案都使用字符串替换,这取决于替换的数量使用StringBuilder更有效,因为字符串对象是不可变的

var sb = new StringBuilder(input);

var replaceItems = new[] { "<p>", "&nbsp;", "<br>" };
foreach (var replace in replaceItems)
{
   sb.Replace(replace, String.Empty);
}

input = sb.ToString();
var sb=新的StringBuilder(输入);
var replaceItems=new[]{“”,“,”
“}; foreach(替换项中的变量替换) { 替换(替换,字符串为空); } 输入=sb.ToString();
@所有答案都使用字符串替换,这取决于替换的数量使用StringBuilder更有效,因为字符串对象是不可变的

var sb = new StringBuilder(input);

var replaceItems = new[] { "<p>", "&nbsp;", "<br>" };
foreach (var replace in replaceItems)
{
   sb.Replace(replace, String.Empty);
}

input = sb.ToString();
var sb=新的StringBuilder(输入);
var replaceItems=new[]{“”,“,”
“}; foreach(替换项中的变量替换) { 替换(替换,字符串为空); } 输入=sb.ToString();
Regex可能不是一个简单的解决方案,但它肯定更具可扩展性Regex可能不是一个简单的解决方案,但它肯定更具可扩展性