Я пытаюсь написать строку регулярного выражения для проекта, который обрабатывает музыку.
Предполагается, что входные данные являются допустимой нотой, но это работает не во всех случаях. , и я не могу найти никакой документации, которая могла бы помочь.
Regex h = new Regex(@"(((A|C|D|F|G)?(#?))|(B|E))?\d\d?",
RegexOptions.IgnoreCase);
Match X = h.Match(Console.ReadLine());
if (X.Success)
{
Console.WriteLine("VALID");
}
else
{
Console.WriteLine("INVALID");
}
Console.ReadLine();
Он должен разрешать ввод данных в формате C#1, за исключением B,E где они должны быть B1 или E1.
(Примечание: 1 является заменой любого целочисленного значения)
Полный действительный список входных данных:
C = a,c,d,f,g
B = b,e
1 = any integer value
C1
C#1
B1
Неверный список:
B#1
CCCCC1
C####1
1C
I AM A FISH
C
H (any character not in the defined list)
H#1
H1
В настоящее время код неправильно помечает эти примеры как действительные, хотя они должны быть недействительными:
CCCCCCC1
B#1
Подробнее здесь: https://stackoverflow.com/questions/793 ... ote-values
Регулярное выражение C# неправильно отклоняет недопустимые значения музыкальных нот ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Регулярное выражение неправильно извлекает (Java Pattern / Matcher) [Duplicate]
Anonymous » » в форуме JAVA - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-