按字符串修整字符串

问题描述:

如何修整字符串而不是单个字符列表?按字符串修整字符串

我想删除HTML字符串开头和结尾的所有 和空格。但方法String.Trim()只有一组字符而不是一组字符串的重载。

+1

将是一个简单的正则表达式 – 2012-04-17 08:46:40

你可以使用HttpUtility.HtmlDecode(String)和使用结果作为一个输入String.Trim()

HttpUtility.HtmlDecode on MSDN
HttpServerUtility.HtmlDecode on MSDN(一个包装就可以通过访问Page.Server属性)

string stringWithNonBreakingSpaces; 
string trimmedString = String.Trim(HttpUtility.HtmlDecode(stringWithNonBreakingSpaces)); 

注:这soluti on会解码输入中的所有HTML字符串。

+0

我也会这么做:-)如果@brgerner不想解码并重新编码字符串,则正则表达式也会这样做。 – jbl 2012-04-17 08:51:01

+0

是的,我同意我也会走正则表达式路线,甚至是'String.Replace'。让我添加附注:) – abhilash 2012-04-17 08:54:03

+0

@ABKolan谢谢,这对' '有效(用'HttpUtility.HtmlDecode(String)')。是否还有修剪'\ n'和'\ r'的方法? – brgerner 2012-04-17 09:11:43

修剪方法默认从当前字符串中删除所有前导和尾随空白字符。

编辑:解决你的问题在您编辑后:

string input = @" &nbsp; <a href='#'>link</a> &nbsp; "; 
Regex regex = new Regex(@"^(&nbsp;|\s)*|(&nbsp;|\s)*$"); 
string result = regex.Replace(input, String.Empty); 

这将删除所有尾随和前导空格和&nbsp;。您可以将任何字符串或字符组添加到表达式。如果你要修剪所有选项卡太正则表达式会简直成了:

Regex regex = new Regex(@"^(&nbsp;|\s|\t)*|(&nbsp;|\s|\t)*$"); 
+0

@brgerner希望从字符串 – 2012-04-17 08:46:12

+0

删除文本'“ ”'而不是'' 我 – Matten 2012-04-17 08:46:14

+0

编辑我的问题:我的第一个版本吞噬了文本:' '。 – brgerner 2012-04-17 08:50:28

不知道这是你在找什么?

string str = "hello &nbsp;"; 
    str.Replace("&nbsp;", ""); 
    str.Trim(); 
+0

这将替换到处,而不是在开始 – 2012-04-17 08:53:42

使用正则表达式,为大卫·赫弗南说。这是比较容易选择的字符串开头的所有空格:^(\ |&nbsp;)*

+0

他想在开始和结束时修剪字符串 – 2012-04-17 09:10:38

+0

这只是一个提示,而不是完整的解决方案 – 2012-04-17 09:13:02