2013-04-21 128 views
1

爲什麼下面的代碼插入一個項目到groupCollection,即使「aaa」不包含12行數字?正則表達式不起作用

var groupCollection = Regex.Match("aaa", "\\d{12}").Groups 

我試圖檢查一個字符串包含在這樣的排12位:

_def_201208141238_aaaa

+1

您可以使用Match.Success檢查正則表達式是否匹配。 – Dirk 2013-04-21 07:51:28

回答

3
var match=Regex.Match("_def_201208141238_aaaa", "\\d{12}"); 


if(match.Success) 
{ 
    // string contains 12 digits in a row 
} 
0

Match方法總是需要返回的東西。並返回值爲success的匹配對象false。我想你想用Matches並得到MatchCollection。在這種情況下,你應該得到0個匹配。

0
  // Option 1 
      // If you are sure there could be only one match then you can check this boolean flag. 
      var isSuccess = Regex.IsMatch("aaa", "\\d{12}"); 

      // Option 2 
      // There could be multiple matches. 
      var matchCollection = Regex.Matches("aaa", "\\d{12}"); 

      foreach (Match m in matchCollection) 
      { 
       // Process your code for each match 
      }