使用regex从c#字符串中删除所有空白
本文关键字:删除 空白 字符串 regex 使用 | 更新日期: 2023-09-27 18:11:48
我正在构建一个由连字符分隔的姓氏字符串。有时会出现空格。我需要从最终结果中删除所有空白。
要处理的示例字符串:
安德森史密斯
需要以(Anderson后无空格)结尾:
Anderson-Reed-Smith
姓氏字符串在字符串变量LastName中。
我正在使用正则表达式:
Regex.Replace(LastName, @"['s+]", "");
结果是:
安德森史密斯。
我也试过:
Regex.Replace(LastName, @"'s+", "");
和
Regex.Replace(LastName, @"'s", "");
我做错了什么?
用Replace
代替RegEx
LastName = LastName.Replace(" ", String.Empty);
Regex.Replace
不修改它的第一个参数(请记住,字符串在。net中是不可变的),所以调用
Regex.Replace(LastName, @"'s+", "");
使LastName
字符串保持不变。你需要这样调用它:
LastName = Regex.Replace(LastName, @"'s+", "");
所有三个正则表达式都可以工作。然而,第一个正则表达式也会删除所有加号字符,我想这可能是无意的。
不需要正则表达式。这也将删除制表符,换行符等
var newstr = String.Join("",str.Where(c=>!char.IsWhiteSpace(c)));
空白字符: 0009 , 000a , 000b , 000c , 000d , 0020 , 0085 , 00a0 , 1680 , 180e , 2000 , 2001 , 2002 , 2003 , 2004 , 2005 , 2006 , 2007 , 2008 , 2009 , 200a , 2028 , 2029 , 202f , 205f , 3000
。
最快和通用的方法(行终止符,制表符也会被处理)。解决这个问题并不需要Regex强大的功能,但是Regex会降低性能。
new string
(stringToRemoveWhiteSpaces
.Where
(
c => !char.IsWhiteSpace(c)
)
.ToArray<char>()
)
或
new string
(stringToReplaceWhiteSpacesWithSpace
.Select
(
c => char.IsWhiteSpace(c) ? ' ' : c
)
.ToArray<char>()
)
使用REGEX可以删除字符串中的空格。
以下命名空间是必选的
using System.Text.RegularExpressions;
语法:
Regex.Replace(text, @"'s", "")
你可以这样写,例如电话号码:
private static string GetFormattedPhoneNumber(string phoneNumber)
=> string.IsNullOrEmpty(phoneNumber) ? string.Empty
: Regex.Replace(phoneNumber, @"[+,'-,'(,'), 's+]*", string.Empty);
static void Main(string[] args)
{
Console.WriteLine(GetFormattedPhoneNumber("+375 (24) 55-333 "));
}
/*
Output: 3752455333
*/
在我的例子中,我让您删除空白:
var year = System.Text.RegularExpressions.Regex.Replace(space, @" ", string.Empty).Replace("Year: ", string.Empty).Trim();
下面是将文件名中的空白替换为给定URL的代码,我们也可以通过使用string来删除相同的内容。空白代替"~"
if (!string.IsNullOrEmpty(url))
{
string origFileName = Path.GetFileName(url);
string modiFileName = origFileName.Trim().Replace(" ", "~");
url = url.Replace(origFileName , modiFileName );
}
return url;
如果可以简单地使用Trim()方法,为什么要使用Regex
Text='<%# Eval("FieldDescription").ToString().Trim() %>'
或
string test = "Testing ";
test.Trim();