背景介绍
处理数据之时需要把字符串中所有的数值提取出来,但是这些数据有整数也有小数,所以利用正则表达式将其提取出来;
具体方法
这里的思路大体就是提取小数的内容,然后把小数的给去除,最后提取整数,这样就可以避免数值重复的情况,具体代码如下所示
public static List<String> getAllNum(String str)
{
List<String> _list = new List<string>();
if (!String.IsNullOrEmpty(str))
{
String pattern = @"\d*\.\d*|0\.\d*[1-9]\d*$";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);
MatchCollection matchs = regex.Matches(str);
foreach (Match m in matchs)
{
_list.Add(m.Groups[0].Value);
}
str = Regex.Replace(str, pattern, "");
String pattern2 = @"[0-9]+";
Regex regex2 = new Regex(pattern2, RegexOptions.IgnoreCase | RegexOptions.Singleline);
MatchCollection matchs2 = regex2.Matches(str);
foreach (Match m in matchs2)
{
_list.Add(m.Groups[0].Value);
}
}
return _list;
}
总结
从较长的文本中提取所需内容,利用正则表达式可以帮助我们简便处理。