我有一个字符串
//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){}
但它不起作用
答案 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参考