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. アイテムを1つの文字列に再結合し、アイテムの間にコンマを置きます。

これらの手順は、標準のStringメソッドを使用して簡単に実行できますが、必要に応じて正規表現を使用できます。

于 2013-01-04T22:01:59.997 に答える