我正在尝试编写一个正则表达式来识别字符串中的字母。我需要逐个字符地在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();
}
}
是否可以使用正则表达式逐字符检查?如果不是我怎么能去做呢?
答案 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}
将查找字符串中的任何位置以查找单个大写或小写字母。作为奖励,比赛将从左到右依次排列。因此循环遍历匹配将为您提供字符串中的每个字母。