为什么我的正则表达式不删除空格?
本文关键字:空格 删除 我的 正则表达式 为什么 | 更新日期: 2023-09-27 18:17:25
我使用下面的代码来确定是否值输入到textBoxAddress。文本是一个号码(传真号码)或电子邮件地址。如果传真号码有空格,下面的isNumber测试将不起作用,所以我试图用Regex删除所有空白,空白没有被删除。你能发现我的问题吗?
谢谢。
string faxOrEmail = textBoxAddress.Text;
faxOrEmail = Regex.Replace(faxOrEmail, @"'s+", " "); //<---Regex
bool testForFax = IsNumber(faxOrEmail);
if (testForFax == true)
{
//send fax
MessageBox.Show(faxOrEmail);
}
else
{
backgroundWorker1.RunWorkerAsync(); //Send Email
}
static bool IsNumber(string value)
{
// Return true if this is a number.
int number1;
return int.TryParse(value, out number1);
}
用一个空格替换一个或多个空格。
Regex.Replace(faxOrEmail, @"'s+", string.Empty);
这不会删除破折号,你的IsNumber方法也不是必须的。
string.Join(string.Empty, faxOrEmail.ToCharArray().Where(x=> char.IsNumber(x)))
试试这个:
faxOrEmail = Regex.Replace(faxOrEmail, @"'s+", "");
我不太懂c#,但是如果你想删除空格,试着用空字符串代替它,而不是空格:)
您正在用空格替换空格!使用字符串。
faxOrEmail = Regex.Replace(faxOrEmail, @"'s+", String.Empty);
以上所有:
或
完全不要使用正则表达式。只需使用Replace方法,将" "
替换为""
如果您想用一个空格替换两个或多个连续空格,那么执行以下操作:
faxOrEmail = Regex.Replace(faxOrEmail, @"'s{2,}", " ");
如果你想删除所有空格,那么这样做:
faxOrEmail = Regex.Replace(faxOrEmail, @"'s+", string.Empty);
如果faxOrEmail只包含空格(" ")而不包含制表符,那么您可以使用:
faxOrEmail = faxOrEmail.Replace(" ", "");
另一方面,您也可以使用Regex删除除十进制数字以外的所有内容(包括破折号、斜杠、括号等):
faxOrEmail = Regex.Replace(faxOrEmail, "[^0-9]", "");