有没有办法从字符串中删除每个特殊字符,如:
"\r\n 1802 S St Nw<br>\r\n Washington, DC 20009"
只需写下:
"1802 S St Nw, Washington, DC 20009"
答案 0 :(得分:5)
删除特殊字符:
public static string ClearSpecialChars(this string input)
{
foreach (var ch in new[] { "\r", "\n", "<br>", etc })
{
input = input.Replace(ch, String.Empty);
}
return input;
}
用单个空格替换所有双倍空格:
public static string ClearDoubleSpaces(this string input)
{
while (input.Contains(" ")) // double
{
input = input.Replace(" ", " "); // with single
}
return input;
}
您也可以将两种方法分成一个方法:
public static string Clear(this string input)
{
return input
.ClearSpecialChars()
.ClearDoubleSpaces()
.Trim();
}
答案 1 :(得分:1)
有两种方法,可以使用RegEx,也可以使用String.Replace(...)
答案 2 :(得分:0)
使用Regex.Replace()方法,指定要删除的所有字符作为匹配的模式。
答案 3 :(得分:0)
你可以使用C#Trim()方法,看看这里:
http://msdn.microsoft.com/de-de/library/d4tt83f9%28VS.80%29.aspx
答案 4 :(得分:0)
System.Text.RegularExpressions.Regex.Replace("\"\\r\\n 1802 S St Nw<br>\\r\\n Washington, DC 20009\"",
@"(<br>)*?\\r\\n\s+", "");
答案 5 :(得分:0)
也许是这样的,使用ASCII int值。假设所有html标签都将关闭。
public static class StringExtensions
{
public static string Clean(this string str)
{
string[] split = str.Split(' ');
List<string> strings = new List<string>();
foreach (string splitStr in split)
{
if (splitStr.Length > 0)
{
StringBuilder sb = new StringBuilder();
bool tagOpened = false;
foreach (char c in splitStr)
{
int iC = (int)c;
if (iC > 32)
{
if (iC == 60)
tagOpened = true;
if (!tagOpened)
sb.Append(c);
if (iC == 62)
tagOpened = false;
}
}
string result = sb.ToString();
if (result.Length > 0)
strings.Add(result);
}
}
return string.Join(" ", strings.ToArray());
}
}