我想从字符串中检索一个数字,只要数字以 8,9 或 6 开头,并且数字的长度应该是 8 或 9 个字符。例如 92000000,9200 0000,9200-0000。
问问题
120 次
2 回答
2
这个怎么样:(?<!\d)([896]\d{3})(?:[-\s]?)(\d{4})(?!\d)
。
将(?:[-\s]?)
可选的分隔符空格或破折号作为非捕获组。
您可以通过连接匹配组 1 和 2 获得您的号码:
var input = new string[] {
"81000000", "92000000", "9200 0000", "9200-0000"
};
var regex = new Regex (@"(?<!\d)([896]\d{3})(?:[-\s]?)(\d{4})(?!\d)");
foreach (var str in input) {
var match = regex.Match (str);
Console.WriteLine ("TEST: {0} {1} - {2}", str, match.Success,
match.Groups [1].Value + match.Groups [2].Value);
}
我也尝试过(?<!\d)([896]\d{3}(?:[-\s]?)\d{4})(?!\d)
,这不会从匹配结果中删除分隔符。
于 2012-12-15T05:41:56.803 回答
0
于 2012-12-15T05:43:49.557 回答