Подскажите, пожалуйста, как правильнее перевести программу с Паскаля на С# - C#
Формулировка задачи:
Подскажите, пожалуйста, как перевести программу из Pascal в C#
procedure AnalizeIdentifier(StrTmp : string);
const
//Множество цифр.
Digits = ['0'..'9'];
//Множество разрешённых символов - те которые могут участвовать в записи идентификатора.
ResolvChars = ['_','a'..'z', 'A'..'Z'] + Digits;
var
i : Integer;
IsIdentifier : boolean; //Флаг, показывающий является ли анализируемая строка идентификатором
begin
//Запускаем цикл последовательной обработки символов строки.
IsIdentifier := True;
for i := 1 to Length(StrTmp) do begin
if
//Текущий символ не принадлежит множеству разрешённых для индентификаторов символов.
not ( StrTmp[i] in ResolvChars )
//Либо текущий символ является первым символом строки и является цифрой.
or ( (i = 1) and (StrTmp[i] in Digits) )
then
begin
//Тогда данная строка не является идентификатором Pascal.
IsIdentifier := False;
//Выходим из цикла.
Break;
end
else
begin
//Тогда данная строка не является идентификатором Pascal.
IsIdentifier := False;
//Выходим из цикла.
Break;
end;
end;
end;Решение задачи: «Подскажите, пожалуйста, как правильнее перевести программу с Паскаля на С#»
textual
Листинг программы
using System;
using System.Text.RegularExpressions;
class Program
{
public static void Main()
{
Regex regex = new Regex(@"\A[_a-z][_a-z0-9]*\z", RegexOptions.IgnoreCase);
foreach (string s in new string[] { "abc_123", "_xyz456", "0_0", "Ы" })
{
Console.Write(s);
Console.WriteLine(regex.IsMatch(s) ? " - корректный" : " - некорректный");
}
}
}