簡體   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