逐个字符串修剪

本文关键字:修剪 字符串 | 更新日期: 2023-09-27 18:31:17

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

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

逐个字符串修剪

您可以使用

HttpUtility.HtmlDecode(String)并将结果用作String.Trim()的输入

MSDN
上的 HttpUtility.HtmlDecodeMSDN 上的 HttpServerUtility.HtmlDecode(可以通过 Page.Server 属性访问的包装器)

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

注意:此解决方案将解码输入中的所有 HTML 字符串。

默认情况下,Trim 方法从当前字符串中删除所有前导和尾随空格字符。

编辑:

编辑后问题的解决方案:

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)*$");

不确定这是否是您要找的?

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

正如David Heffernan所说,使用RegEx。在字符串开头选择所有空格相当容易:^(' |&nbsp;)*