首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么从这里提取出来所有的数字?

2012-09-16 
怎样从这里提取出来所有的数字???“Left Channel:Frequency 1.020 kHzLevel 11.93 dBuTHD+N 18.065 %Rig

怎样从这里提取出来所有的数字???

Left Channel:
Frequency = 1.020 kHz
Level = 11.93 dBu
THD+N = 18.065 %

Right Channel:
Frequency = 1.020 kHz
Level = 11.94 dBu
THD+N = 18.049 %

Level Difference (L - R): -0.006 dB

Phase Difference (L - R): -0.01 deg



就是从上面这一段字符串中提取出来所有的数字,包括
1.020
11.93
18.065
1.020
11.94
18.049
-0.006
-0.01



[解决办法]
正则表达式 (-?\d+)(\.\d+)?
[解决办法]

C# code
   string tempStr = @"Left Channel:                                Frequency = 1.020 kHz                                Level = 11.93 dBu                                THD+N = 18.065 %                                Right Channel:                                Frequency = 1.020 kHz                                Level = 11.94 dBu                                THD+N = 18.049 %                                Level Difference (L - R): -0.006                                 dB Phase Difference (L - R): -0.01 deg";            string pattern = @"-?\d+\.?\d*";            MatchCollection mc = Regex.Matches(tempStr, pattern, RegexOptions.Multiline|RegexOptions.IgnoreCase);            for (int i = 0; i < mc.Count; i++)            {                string value = mc[i].Value;//循环得到数字                                    } 

热点排行