110,538
社区成员
发帖
与我相关
我的任务
分享
(^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?(1[358]\d{9})$)
Regex re = new Regex(@"\d{11}|\d{7}|\d{4}\-\d{7}", RegexOptions.Multiline);
MatchCollection mc = re.Matches("text");
foreach (Match ma in mc)
{
}
@"^(((\d{11}|(\d{3,4}-)?\d{7,8}))(/(\d{11}|((\d{3,4}-)?\d{7,8})))*)$"
再修正下,区域号码可能是3位或4位的@"^(((\d{11}|(\d{4}-)?\d{7,8}))(/(\d{11}|((\d{4}-)?\d{7,8})))*)$"
座机现在是8位的,你的却是7位,所以匹配座机部分是用了{7,8}
然后这个正则还匹配
0851-5832091/13632958302
string input = "13632958302djfjd13632958302/13632958302irueue13632958302/5832091HDFEUYR82#$13632958302/0851-5832091HFSJ92j5832091vvvvbnn0851-5832091ssdfg";
MatchCollection mColl = Regex.Matches(input, @"^\d{11}|\d{11}/\d{11}|\d{11}/\d{7}|\d{11}/\d{4}-\d{7}|\d{4}-\d{7}|\d{7}");
foreach(Match m in mColl)
{
listBox1.Items.Add(m.ToString());
//MessageBox.Show(m.ToString());
}
测试通过