繁体   English   中英

如何使用C#Regex从字符串中删除额外的点空格以构建小数?

[英]How to remove extra dots spaces from a string to build a decimal using C# Regex?

INPUT :字符串表示数字,字符串,点和空格。 请注意, e定义了数字之间的分隔符。

e.27.3.90.. .e 3.50 2.30..e2.0.1.2. .50..

输出 :我想删除所有空格和那些额外的点,除了组成跟随的那个并添加一个,e之前,

,e273.90,e3502.30,e2012.50

PS:关于各种类型的regex有很多帖子。 我试图建立一个,但到目前为止似乎没有成功。

  1. 请提出任何有效的一次性regex或想法。
  2. 想听听这个regex与多个replace()的性能增益/损失

这是我一直在喘着粗气的代码;)..:

      List<string> myList;     
      string s = "";     
      string s2 = "";          
      string str = "e.27.3.90..bl% .e 3.50 2.30. #rp.e2.0.1.2..50..y*x";
      s = Regex.Replace(str, @"\b[a-df-z',\s]+", "");                               
      myList = new List<string>(Regex.Split(s, @"[e]"));

最后str是你的结果

     string str = "e.27.3.90..bl% .e 3.50 2.30. #rp.e2.0.1.2..50..y*x";
     str = Regex.Replace(str, "[^e^0-9]", "");
     str = Regex.Replace(str, "([0-9]{2}?)(e|$)", ".$1,$2");

     //str = "," + str.Substring(0, str.Length - 1);
  1. 从字符串中删除所有点。
  2. 将字符串拆分为每个“e”的单独项目。
  3. 对于每个项目,在最后2位数之前添加一个点。
  4. 将项目重新组合成一个字符串,在项目之间放置逗号。

使用标准String方法可以轻松执行这些步骤,但如果需要,可以使用正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM