Login Gblog  
简单点~~~
 
文章全文
Goberl 发表于 2010-12-3 8:53:21

 把一串数字每3位加一个逗号。

复制代码

string s = "某某的面积是12345678平方米";

string t = Regex.Replace(s, @"(?<=\d)(?=(\d\d\d)+(?!\d))", ",");

Console.WriteLine(t); //输出:某某的面积是12,345,678平方米


三行代码实现阿拉伯数字转中文大小写
复制代码

using System;

using System.Text.RegularExpressions;


classProgram

{

  //把阿拉伯数字的金额转换为中文大写数字

  static string ConvertToChinese(double x)

  {

    string s = x.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#.0B0A");

    string d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");

    return Regex.Replace(d, ".", delegate(Match m) { return "负元空零壹贰叁肆伍陆柒捌玖空空空空空空空分角拾佰仟萬億兆京垓秭穰"[m.Value[0] - '-'].ToString(); });

  }


  static void Main()

  {

    Random r = new Random();

    for (int i = 0; i < 10; i++)

    {

      double x = r.Next() / 100.0;

      Console.WriteLine("{0,14:N2}: {1}", x, ConvertToChinese(x));

    }

  }

}

/* 可能的输出:

  5,607,400.68: 伍佰陆拾萬柒仟肆佰元陆角捌分

  2,017,723.33: 贰佰零壹萬柒仟柒佰贰拾叁元叁角叁分

    751,181.17: 柒拾伍萬壹仟壹佰捌拾壹元壹角柒分

  7,849,851.53: 柒佰捌拾肆萬玖仟捌佰伍拾壹元伍角叁分

  2,629,143.90: 贰佰陆拾贰萬玖仟壹佰肆拾叁元玖角

 13,461,629.68: 壹仟叁佰肆拾陆萬壹仟陆佰贰拾玖元陆角捌分

  4,594,391.16: 肆佰伍拾玖萬肆仟叁佰玖拾壹元壹角陆分

 13,046,560.60: 壹仟叁佰零肆萬陆仟伍佰陆拾元陆角

 13,041,371.21: 壹仟叁佰零肆萬壹仟叁佰柒拾壹元贰角壹分

 20,639,609.44: 贰仟零陆拾叁萬玖仟陆佰零玖元肆角肆分

*/



来源:http://topic.csdn.net/u/20101126/14/636C5E88-2297-4CE6-BF40-E6427C2799A4.html
类别:Dev      标签:正则表达式      浏览(61)
相关主题:
在线查询汉字Unicode编码 再谈正则表达式
评论列表:
发表评论
大名: ( *必填)
Email: (填写后,将收到Goberl对你的回复)
网址: (可选)
正文:
      记住信息?