求一提取电话号码的正则表达式(急)
紧急求助,各位高手,大侠,如何将下述字符串中的电话号码及手机号码提取出来。   
 增光佳苑2号楼1单元1202黄治政010-51653935/13401036321林倍021-87654352-908工程分公司财务科芦娟13611255375      01088852580   13611255375   13611255375      010-88852580-805。   
 先谢过了。 
------解决方案--------------------string a= "增光佳苑2号楼1单元1202黄治政010-51653935/13401036321林倍021-87654352-908工程分公司财务科芦娟13611255375  01088852580 13611255375 13611255375  010-88852580-805。 "; 
 Regex reg=new Regex(@ "(?([0])[\d-]{11,}|\d{11}) "); 
 foreach(Match m in reg.Matches(a)) 
 { 
 	a=m.Value; 
 	a= " "; 
 }
------解决方案--------------------电话:[\d]{3}\-[\d]+(\-[\d]{3})? 
 手机:1[\d]{10}
------解决方案--------------------\d{3,4}[-]?\d{7,8}(-\d{2,5})?|1\d{10}
------解决方案--------------------按道理来说如果没特殊情况 
 @ "[\d-]{8,} "  
 这样一个正则就应该满足所有要求