• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Регулярные выражения

  • Автор темы cmd
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

cmd

Доброе время суток.
Помогите пожалуйста со следующей маленькой проблемой:
Есть следующее регулярное выражение.
^(TRUE)|(FALSE)|[a-z]$
Как сделать так чтобы "воспринималась" только одна буква из диапазона [a-z]

Regex reg = new Regex(@"^(TRUE)|(FALSE)|[a-z]$");
if (reg.IsMatch(str))
{
Console.WriteLine("Введено правильное выражение");
}
else Console.WriteLine("Ошибка");
Например: При вводе abchdsf - получался результат "Ошибка"
и только при вводе одной буквы из диапазона a-z результат "Введено правильное выражение"
 
Y

Young Programmer

....[a-z]{1} - только одна буква из заданного диапазона
 
C

cmd

Спасибо за внимание, разобрался :angry:

^((TRUE)|(FALSE)|[a-z]|(NOT\s(TRUE)|NOT\s(FALSE)|NOT\s[a-z])){1}$
 
Y

Yason

^((TRUE)|(FALSE)|[a-z]|(NOT\s(TRUE)|NOT\s(FALSE)|NOT\s[a-z])){1}$
Зачем плодить сущности, в частности, NOT?
Код:
^((NOT\s)?(TRUE|FALSE|[a-z])){1}$
P.S. Не знаю, совпадает ли синтаксис regexp'ов в .NET и у JavaScript, но общий смысл, думаю, понятен.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!