正则表达式从字符串中删除点

时间:2016-11-10 05:11:51

标签: c# regex

我有这个

regex Regex.Replace(listing.Company, @"[^A-Za-z0-9_\.~]+", "-");

listing.Company是一个字符串,这可以工作但是当一个字符串有点时它不会删除它们。

你能帮帮我吗

3 个答案:

答案 0 :(得分:2)

在您当前的正则表达式中,您排除了\.,这会导致Regex.Replace忽略它。此外,您的正则表达式不会将输入字符串转换为小写。您可以在之后执行此操作,但在替换之前执行此操作会使您的模式更简单。

尝试使用此方法:

var output = Regex.Replace(listing.Company.ToLower(), "[^a-z0-9_]+", "-");

答案 1 :(得分:1)

Regex.Replace(listing.Company.ToLower(), @"[^a-z0-9_]+", "-");

您要排除\.,这是针对点的。 此外,如果您希望它使用较低的字母,则需要先将字符串转换为小写字母。

答案 2 :(得分:0)

也许你正在寻找这样的东西:

string res = Regex.Replace(listing.Company, @"[\W+\.~]", "-");

此处正则表达式引擎会查找A-Z, a-z, underscore以外的任何字符以及dot~,并将其替换为“ - ”。

Demo