0

我有一个字符串

//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

4 回答 4

5

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

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

于 2012-05-05T19:12:03.817 回答
4

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

if(Regex.IsMatch(i.ToString(), @"\d{9}")) {
    // ...
}
于 2012-05-05T19:10:59.980 回答
1

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

@"\d{9}"

此外,您当前的代码不起作用,因为您使用Regex.Match的是仅返回第一个匹配项。

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

于 2012-05-05T19:12:01.680 回答
0

'\d{9}'

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

于 2012-05-05T19:12:28.473 回答