如何从文本中删除多个点(。)?

时间:2011-01-25 15:41:14

标签: c# regex

如何从文本中删除多个点(。)?

例如:

123..45  = 123.45
10.20.30 = 10.2030
12.34    = 12.34
12..     = 12
123...45 = 123.45

怎么做?

提前致谢

4 个答案:

答案 0 :(得分:2)

没有必要使用正则表达式,您可以通过这种方式实现所需:

 string s = "10.20.30";
        int n;
        if( (n=s.IndexOf('.')) != -1 )
            s = string.Concat(s.Substring(0,n+1),s.Substring(n+1).Replace(".",""));

答案 1 :(得分:0)

Regex.Replace("Yourstring", "[.]{2,}",".");

答案 2 :(得分:0)

using System.Linq;
...
string s = "10.20.30";
while (s.Count( c => c == '.') > 1)
    s = s.Remove( s.LastIndexOf('.'),1);

答案 3 :(得分:0)

好的,使用this overload of Regex.Replace,这里的诀窍是匹配第一个.之后的所有内容,使用后备组[(?<=],然后使用MatchEvaluator清除Match

Regex.Replace(
    "127.0.8", //input string
    @"(?<=\.).*", //match everything after 1st "."
    m => m.Value.Replace(".",string.Empty)) //return value of match without "."