正则表达式 用逗号分割金额 在金额栏里用逗号把金额分开,小数部分保留四位小数,怎么写正则表达式。如:345,423,546.0812 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 txtmoney.Text = string.Format("{0:C}",Convert.ToDecimal(txtmoney.Text)) 3 环视应用今天写累了,暂时就给出一个环视的综合应用实例吧,至于环视的应用场景和技巧,后面再整理。需求:数字格式化成用“,”的货币格式。正则表达式:(?<=\d)(?<!\.\d*)(?=(?:\d{3})+(?:\.\d+|$))测试代码:double[] data = new double[] { 0, 12, 123, 1234, 12345, 123456, 1234567, 123456789, 1234567890, 12.345, 123.456, 1234.56, 12345.6789, 123456.789, 1234567.89, 12345678.9 };foreach (double d in data){ richTextBox2.Text += "源字符串:" + d.ToString().PadRight(15) + "格式化:" + Regex.Replace(d.ToString(), @"(?<=\d)(?<!\.\d*)(?=(?:\d{3})+(?:\.\d+|$))", ",") + "\n";}输出结果:源字符串:0 格式化:0源字符串:12 格式化:12源字符串:123 格式化:123源字符串:1234 格式化:1,234源字符串:12345 格式化:12,345源字符串:123456 格式化:123,456源字符串:1234567 格式化:1,234,567源字符串:123456789 格式化:123,456,789源字符串:1234567890 格式化:1,234,567,890源字符串:12.345 格式化:12.345源字符串:123.456 格式化:123.456源字符串:1234.56 格式化:1,234.56源字符串:12345.6789 格式化:12,345.6789源字符串:123456.789 格式化:123,456.789源字符串:1234567.89 格式化:1,234,567.89源字符串:12345678.9 格式化:12,345,678.9实现分析:首先根据需求可以确定是把一些特定的位置替换为“,”,接下来就是分析并找到这些位置的规律,并抽象出来以正则表达式来表示。1、 这个位置的左侧必须为数字2、 这个位置右侧到出现“.”或结尾为止,必须是数字,且数字的个数必须为3的倍数3、 这个位置左侧相隔任意个数字不能出现“.”由以上三条,就可以完全确定这些位置,只要实现以上三条,组合一下正则表达式就可以了。根据分析,最终匹配的结果是一个位置,所以所有子表达式都要求是零宽度。1、 是对当前所在位置左侧附加的条件,所以要用到逆序环视,因为要求必须出现,所以是肯定的,符合这一条件的子表达式即为“(?<=\d)”2、 是对当前所在位置右侧附加的条件,所以要用到顺序环视,也是要求出现,所以是肯定的,是数字,且个数为3的倍数,即“(?=(?:\d{3})*)”,到出现“.”或结尾为止,即“(?=(?:\d{3})*(?:\.|$))”3、 是对当前所在位置左侧附加的条件,所以要用到逆序环视,因为要求不能出现,所以是否定的,即“(?<!\.\d*)”因为零宽度的子表达式是非互斥的,最后匹配的都是同一个位置,所以先后顺序是不影响最后的匹配结果的,可以任意组合,只是习惯上把逆序环视写在左侧,顺序环视写在右侧。http://blog.csdn.net/lxcnn/archive/2009/06/28/4304754.aspx decimal money = 345423546.08121111M;Console.WriteLine(money.ToString("C"));这个可以完全不要正则表达式的 一个简单的问题,速度求解,在线等 vs2008中文版怎么安装AjaxControlerToolkit asp.net 上传视频文件 关于Session的问题,由于要和其他的系统对接需要改,怎么做比较方便? 用什么工具布局方便些? mappath要放到哪个地方才起作用?数据库使用access怎么连接? 如何像iframe框架一样,在隐藏打开,但不使用iframe有方法吗 SplendidCRM汉化 怎样写入数据库 在客户端如何用本地打印机打印网页,哪位高手给个思路吧 请问如何把一个textbox的内容写入写入我选中的gridview行中最后一列位置里谢谢 求substring用法
http://blog.csdn.net/lxcnn/archive/2009/06/28/4304754.aspx
decimal money = 345423546.08121111M;
Console.WriteLine(money.ToString("C"));
这个可以完全不要正则表达式的