使用正则表达式逐字符检查字符

时间:2012-01-31 23:06:28

标签: c# regex visual-studio

我正在尝试编写一个正则表达式来识别字符串中的字母。我需要逐个字符地在C#

的程序中使用它
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();
    }    
}

是否可以使用正则表达式逐字符检查?如果不是我怎么能去做呢?

3 个答案:

答案 0 :(得分:4)

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

或很快

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

答案 1 :(得分:0)

如果您将if语句更改为:

您的代码将被编译

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

答案 2 :(得分: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}将查找字符串中的任何位置以查找单个大写或小写字母。作为奖励,比赛将从左到右依次排列。因此循环遍历匹配将为您提供字符串中的每个字母。