0

输入:有数字的字符串,还有一个字符串、点和空格。请注意,它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]"));
4

2 回答 2

2

最后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);
于 2013-01-04T22:12:34.227 回答
0
  1. 从字符串中删除所有点。
  2. 在每个“e”处将字符串拆分为单独的项目。
  3. 对于每个项目,在最后 2 位数字前添加一个点。
  4. 将项目重新组合成一个字符串,在项目之间放置一个逗号。

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

于 2013-01-04T22:01:59.997 回答