Регулярное выражение для проверки if - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. У меня имеется небольшой опыт использования регулярных выражений, посему ошибка может быть банальной, за что прошу прощения. У меня имеется строки вида: ifvalue == 10 { if value == 10 { if value==10 { Ну, то есть строка с оператором условия. Мне необходимо проверить правильность написания (т.е.

if

value -

ошибка

). Также следует забрать подстроку - условия. Раньше я использовал такую регулярку: \s?if\s?(.*)\s?{ В принципе - она отрабатывала как надо. Но я задумался над возможностью, что после оператора if не будет пробела. Каким образом можно перестроить регулярку так, чтобы заиметь группу, в которой будет находится if и все символы до пробела? Но таким образом, чтобы это работало в обе стороны - если есть ошибка, то в группах

(MatchCollection)

будут:
Листинг программы
  1. [1]: ifvalue
  2. [2]: value == 10
И если нет ошибки:
Листинг программы
  1. [1]: if
  2. [2]: value == 10
Пробовал написать регулярку, но все время шел (как я считаю) не по тому пути: \s?(if\S*)\s?(.*)\s?{ Спасибо.

PS.

Ещё в другом месте (для проверки условия) использую такую регулярку: (!|<|>)=?|==

Решение задачи: «Регулярное выражение для проверки if»

textual
Листинг программы
  1. // if name == "world" {
  2.  
  3.  
  4.             // \s?if\s?(.*)\s?{ - 1
  5.             // \s?(if(\S*))\s?(.*)\s?{ - 2
  6.  
  7.             var match = Regex.Match(innerData, @"\s?(if\S*)\s?(.*)\s?{");
  8.             var condition = match.Groups[2].Value;
  9.  
  10.             if (!Regex.IsMatch(condition, @"(!|<|>)=?|==")
  11.                 || string.IsNullOrEmpty(condition)
  12.                 || match.Groups[1].Value.Trim().Length > 2)
  13.                 throw new ArgumentException(innerData);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы