使用regex逐字符检查

本文关键字:检查 字符 regex 使用 | 更新日期: 2023-09-27 18:22:07

我正在尝试编写一个正则表达式来识别字符串中的字母。我需要一个字符一个字符地在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();
    }    
}

是否可以使用regex逐字符检查?如果没有,我该怎么办?

使用regex逐字符检查

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

或短期

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

如果将if语句更改为:,您的代码将编译

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

试试这个:

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}将在字符串中的任何位置查找单个大写字母或小写字母。作为奖励,比赛将按从左到右的顺序进行。因此,在匹配中循环会得到字符串中的每个字母。