日期:2014-05-18 浏览次数:20387 次
Regex.Replace(s, @"", "", RegexOptions.IgnoreCase);
string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312")); string pattern = @"\d+(.\d+)?"; List<float> temp_result = Regex.Matches(tempStr,pattern).Cast<Match>().Select(a=>float.Parse(a.Value)).ToList(); /* [0] 55.0 float [1] 55.06 float [2] 55.0678 float [3] 55.067 float [4] 55.1 float */
------解决方案--------------------
个人认为,你的问题,就是去除数字多余的0,这用数字好解决这个问题,用正则反而不好解决。
[code=C#]var source = "55.3000";
var result = decimal.Parse(source).ToString("0.0");/code]
------解决方案--------------------
void Main() { var list=new List<string>{ "55.0000", "55.0600", "55.0678", "55.0670", "55.1000" }; var reg=new Regex(@"(?<=\.\d*)(\d)(\1)+"); list.ForEach(l=>Console.WriteLine("{0}:\t{1}",l,reg.Replace(l,"").TrimEnd(new char[]{'.','0'}))); /* 55.0000: 55 55.0600: 55.06 55.0678: 55.0678 55.0670: 55.067 55.1000: 55.1 */ }
------解决方案--------------------
var source = "55.3000"; var result = decimal.Parse(source).ToString("0.#");
------解决方案--------------------
------解决方案--------------------