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, World<br>Foo<br>Bar</p>";
string[] replaceItems = { "<p>", " ", "<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>", " ", "<br>" };
foreach (string itemtodelete in items)
{
test=test.Replace(itemtodelete,"");
}
例如:
string input = "<p>Hello, World<br>Foo<br>Bar</p>";
string[] replaceItems = { "<p>", " ", "<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>", " ", "<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>", " ", "<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>", " ", "<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可能不是一个简单的解决方案,但它肯定更具可扩展性