正则表达式 用逗号分割金额 在金额栏里用逗号把金额分开,小数部分保留四位小数,怎么写正则表达式。如: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"));这个可以完全不要正则表达式的 发送邮件时 SMTP服务器要求安全连接或客户端未通过身份验证 做个网站出现了奇怪的问题,求解答 怎样弹出多月日历控件和如何实现层上有关闭按钮? ASP根目录语句怎么写 机器不能运行<% %>之间的内容是怎么回事? 关于采集程序的登陆问题 救命,用水晶报表导出excel,打开竟要5分钟,谁有遇到这问题的讨论一下. 能否在datagrid里作插入操作?? 为什么,在framset中 使用过webmatrix的朋友进来一下。 请问如何把一个textbox的内容写入写入我选中的gridview行中最后一列位置里谢谢 求substring用法
http://blog.csdn.net/lxcnn/archive/2009/06/28/4304754.aspx
decimal money = 345423546.08121111M;
Console.WriteLine(money.ToString("C"));
这个可以完全不要正则表达式的