解析字符串并确保它包含一个9位数字

时间:2012-05-05 19:09:11

标签: c# regex string

我有一个字符串

//webcache.googleusercontent.com/search?hl=en&lr=&rlz=1G1GGLQ_IWIL297&q=cache:UadRLVLrpCQJ:http://www.buy.com/prod/pny-geforce-9800-gx2-1gb-512-bit-ddr3-600mhz-pci-e-2-0-dual-dvi-hdmi/207534756.html%2BVCG98GX2XPB%2Bsite%253Abuy.com&ct=clnk

如何检查它是否包含9位数序列?在此示例中,它具有207534756

我试过了:

String resultString = Regex.Match(i.ToString(), @"\d+").Value;
if (resultString.Length == 9){}

但它不起作用

4 个答案:

答案 0 :(得分:5)

尝试使用@"[0-9]{9}"。它将连续匹配9位数。

编辑:更正确的方法是确保周围没有其他数字:@"(^|[^0-9])[0-9]{9}([^0-9]|$)"

答案 1 :(得分:4)

只需使用Regex.IsMatch和带有重复长度说明符的正则表达式:

if(Regex.IsMatch(i.ToString(), @"\d{9}")) {
    // ...
}

答案 2 :(得分:1)

更改正则表达式以匹配9位数的字符串:

@"\d{9}"

此外,您当前的代码无效,因为您使用的Regex.Match仅返回第一个匹配。

您应该使用Regex.Matches并循环结果。

答案 3 :(得分:0)

'\ d {9}'

请参阅http://www.w3schools.com/jsref/jsref_obj_regexp.asp这是一个很好的参考...还有RegexBuddy ......只是Google Regex参考