正则|数字|Format

* C#正则常用表达式

 1. string.Replce() 和 Regex.Replace()

正则表达式规则

//C#
public String Replace(char oldChar, char newChar);
public String Replace(String oldValue, String newValue);
var reg2 = "kjfdkdj".Replace('d', '*'); //例子


//System.Text.RegularExpressions.Regex
public static string Replace(string input, string pattern, MatchEvaluator evaluator, RegexOptions options, TimeSpan matchTimeout);

public static string Replace(string input, string pattern, string replacement, RegexOptions options, TimeSpan matchTimeout);

var reg1 = Regex.Replace("ajkd12jfk2334",@"d", "*", RegexOptions.IgnoreCase); //例子
View Code

* string.Format()

//1、字符串的数字格式
string str1 =string.Format("{0:N1}",56789);               //result: 56,789.0
string str2 =string.Format("{0:N2}",56789);               //result: 56,789.00
string str3 =string.Format("{0:N3}",56789);               //result: 56,789.000
string str8 =string.Format("{0:F1}",56789);               //result: 56789.0
string str9 =string.Format("{0:F2}",56789);               //result: 56789.00
string str11 =(56789 / 100.0).ToString("#.##");           //result: 567.89
string str12 =(56789 / 100).ToString("#.##");             //result: 567


//2、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)
string.Format("{0:C}",0.2)
 //结果为:¥0.20 (英文操作系统结果:$0.20)
//默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数
string.Format("{0:C1}",23.15)
//结果为:¥23.2 (截取会自动四舍五入)


//格式化多个Object实例
string.Format("市场价:{0:C},优惠价{1:C}",23.15,19.82)


//3、格式化十进制的数字(格式化成固定的位数,位数不能少于未格式化前,只支持整形)
string.Format("{0:D3}",23) //结果为:023
string.Format("{0:D2}",1223) //结果为:1223,(精度说明符指示结果字符串中所需的最少数字个数。)
  

// 4、用分号隔开的数字,并指定小数点后的位数
string.Format("{0:N}", 14200) //结果为:14,200.00 (默认为小数点后面两位)
string.Format("{0:N3}", 14200.2458) //结果为:14,200.246 (自动四舍五入)

//5、格式化百分比
string.Format("{0:P}", 0.24583) //结果为:24.58% (默认保留百分的两位小数)
string.Format("{0:P1}", 0.24583) //结果为:24.6% (自动四舍五入)


//6、零占位符和数字占位符
string.Format("{0:0000.00}", 12394.039) //结果为:12394.04
string.Format("{0:0000.00}", 194.039) //结果为:0194.04
string.Format("{0:###.##}", 12394.039) //结果为:12394.04
string.Format("{0:####.#}", 194.039) //结果为:194
  
//下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。
零占位符: 如果格式化的值在格式字符串中出现“0”的位置有一个数字,则此数字被复制到结果字符串中。小数点前最左边的“0”的位置和小数点后最右边的“0”的位置确定总在结果字符串中出现的数字范围。 “00”说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。
数字占位符: 如果格式化的值在格式字符串中出现“#”的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。
请注意,如果“0”不是有效数字,此说明符永不显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是所显示的数字中的有效数字,则显示“0”字符。 “##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

//7、日期格式化
string.Format("{0:d}",System.DateTime.Now) //结果为:2009-3-20 (月份位置不是03)
string.Format("{0:D}",System.DateTime.Now) //结果为:2009年3月20日
string.Format("{0:f}",System.DateTime.Now) //结果为:2009年3月20日 15:37
 string.Format("{0:F}",System.DateTime.Now) //结果为:2009年3月20日 15:37:52
 string.Format("{0:g}",System.DateTime.Now) //结果为:2009-3-20 15:38
 string.Format("{0:G}",System.DateTime.Now) //结果为:2009-3-20 15:39:27
 string.Format("{0:m}",System.DateTime.Now) //结果为:3月20日
string.Format("{0:t}",System.DateTime.Now) //结果为:15:41
 string.Format("{0:T}",System.DateTime.Now) //结果为:15:41:50
View Code

1、toString("N")

            int k = 12345678;
//ToString(string format) 
            var s2 = k.ToString("N1");  //12,345,678.0 保留了一位小数 N 数字,以逗号分隔
            var c1 = 2.5.ToString("C"); //¥2.50  货币
            var d1 = 25.ToString("D5"); //00025  十进制
            var e1 = 25000.ToString("E"); //2.500000E+004  科学型
            var f1 = 252378473.ToString("F2"); //25.00  固定点,两位小数点,中间不用逗号分开
            var g1 = 2.5.ToString("G"); //2.5 常规
            var x1 = 255.ToString("X"); //FF  十六进制

            string dt = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");  //大写HH为24小时制,小写hh为12小时制

* 数值测试:

 1  #region 把字符串转换为数值
 2             //把string类型的转为int类型,并附一个默认值
 3             try
 4             {
 5                 var int1 = int.Parse("3.2" ?? "0"); //会抛出异常,前面一个必须是string类型
 6             }
 7             catch (Exception ex)
 8             {
 9             }
10             var double2 = double.Parse("4" ?? "0.0");
11 
12             //返回bool类型,如果转换成功并返回成功的值;不抛出异常
13             int int2 = 0;
14             var flag = int.TryParse("3", out int2); 
15             #endregion
16 
17 
18             //保留2位小数,不四舍五入
19             var a = Convert.ToDecimal((int)(0.018 * 100) / 100.00);
20 
21             var d = Math.Truncate(3.50034);//截取整数,返回时double类型
22             var d2 = Math.Round(3.56734, 2);  //四舍五入
23 
24             //先要判断是否为null
25             string c = null;
26             string e = c != null ? c.Contains("*") + "不为空" : "为空";
View Code

* 时间格式化

 DateTime.ToString()的各种日期格式:

ToString("yyyy-MM-dd HH:mm:ss.fff"));  2016-09-27 01:02:03.001   // fff 越多精度越高

ToString("yyyy-MM-dd HH:mm:ss:ms")); 2016-09-27 01:02:03:234

new DateTime(1900, 1, 1)  ; DateTime.MinValue;

详细解释:

1.y代表年份,注意是小写的y,大写的Y并不代表年份。

2.M表示月份。

3.d表示日期,注意D并不代表什么。

4.h或H表示小时,h用的是12小时制,H用的是24小时制。

5.m表示分钟。

6.s表示秒。注意S并不代表什么。

正斜杠 / 和反斜杠 的区别

解释 
1、” / ” 英文是forward slash, “ ” 是backward slash ; 形象些比喻的话,” / “是一个人站立着向前倾倒->, 而” “是一个人站立着向后倾倒。 
2、“在绝大多数地方,用的都是 /(forward slash),包括Mac/Linux,也包括URL。你唯一需要记住的是,而Microsoft在自己的操作系统里面偏要用 (backslash),使得自己与众不同。

历史背景: 
1、Unix使用斜杠/作为路径分割符,而Web应用最先是使用在Unix系统上面,所以目前所有的网络地址都采用斜杠/作为分隔符。 
2、Windows由于使用斜杠/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠作为路径分隔符。所以目前windows系统上的文件浏览器都是用反斜杠作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用得很少,斜杠和反斜杠在大多数情况下可以互换,没有影响。(可以输入cmd命令符自行验证 “” 和”/”是否有区别)

结论 
1、浏览器地址栏网址使用 正斜杠/; 
2、windows文件浏览器上使用 反斜杠; 
3、出现在htm url()属性中的路径,指定的路径是网络路径,所以必须使用 正斜杠/; 

<div style="background-image:url(/Image/Control/title.jpg); background-repeat:repeat-x; padding:10px 10px 10px 10px"></div>
// 如果url后面用反斜杠,就不会显示任何背景

4、出现在普通字符串的路径,如果代表的是windows文件路径,则使用 正斜杠/和 反斜杠是一样的;如果代表的是网络文件路径,则必须使用 正斜杠/;

<img src=".Image/Control/ding.jpg" /> // 本地文件路径,/ 和  是等效的
<img src="./ImageControlcai.jpg" />
<img src="http://hiphotos.baidu.com/yuhua522/pic/item/01a949c67e1023549c163df2.jpg" /> // 网络文件路径,一定要使用 斜杆/

相对路径和绝对路径:

./SRC/  这样写表示,当前目录中的SRC文件夹;

 ../SRC/  这样写表示,当前目录的上一层目录中SRC文件夹;

/SRC/   这样写表示,项目根目录(可以只磁盘根目录,也可以指项目根目录,具体根据实际情况而定)

JavaScript:

stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。

1. javascript 把字符串中的反斜杠()替换成双斜杠(\)

replace(/\/g,"\\");

2.javascript 把字符串中的反斜杠()替换成斜杠(/)

replace(/\/g,"/");

3.javascript 把字符串中的斜杠(/)替换成反斜杠()

replace(///g,"\");

原文地址:https://www.cnblogs.com/SmileSunday/p/9103467.html