2012-01-31 49 views
1

我想寫一個正則表達式來識別字符串中的字母。我需要字符使用正則表達式檢查字符

String originalData = "90123Abc"; 
Regex _regex = new Regex(@"[a-zA-Z]$"); 

foreach (char c in originalData) 
{ 
    if (System.Text.RegularExpressions.Regex.IsMatch(c, _regex)) 
    { 
     System.Console.WriteLine(" (match for '{0}' found)", _regex); 
    } 
    else 
    { 
     System.Console.WriteLine(); 
    }  
} 

是否有可能通過檢查使用正則表達式字符的字符在C#中使用它在我的計劃走字?如果不是我怎麼能去呢?如果你改變了if聲明

+2

你爲什麼要這麼做?幾乎肯定有更好的正則表達式提取您想要的信息的方式。提取所有字母字符的最終目標是? – eouw0o83hf 2012-01-31 23:12:25

回答

4
for (int i = 0; i < input.Length; i++) 
{ 
    if(Char.IsLetter(input[i])) 
    { 
    // its alphabetic 
    } 
} 

或不久

input.Where(c => char.IsLetter(c)).ToList() 
+1

我編輯了你的答案,隨時刪除它。 – 2012-01-31 23:24:57

+0

謝謝,這也適用。比使用RegEx好得多.. – DotNetUser 2012-01-31 23:26:10

+0

這工作好多了!!謝謝 :) – JJunior 2012-02-01 19:11:45

0

您的代碼編譯:

if (_regex.IsMatch(c.ToString())) 
0

試試這個:

foreach (Match m in Regex.Matches(originalData, @"[a-zA-Z]{1}")) 
     Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index); 

[a-zA-Z]{1}將隨時隨地查找字符串中找到一個大寫或小寫字母。作爲獎勵,比賽將按照從左到右的順序進行。因此通過比賽循環會給你字符串中的每一個字母。