Регулярное выражение для проверки if - C#
Формулировка задачи:
Доброго времени суток.
У меня имеется небольшой опыт использования регулярных выражений, посему ошибка может быть банальной, за что прошу прощения.
У меня имеется строки вида:
И если нет ошибки:
Пробовал написать регулярку, но все время шел (как я считаю) не по тому пути:
ifvalue == 10 {
if value == 10 {
if value==10 {
Ну, то есть строка с оператором условия.
Мне необходимо проверить правильность написания (т.е. if
value -ошибка
). Также следует забрать подстроку - условия. Раньше я использовал такую регулярку:\s?if\s?(.*)\s?{
В принципе - она отрабатывала как надо. Но я задумался над возможностью, что после оператора if не будет пробела.
Каким образом можно перестроить регулярку так, чтобы заиметь группу, в которой будет находится if и все символы до пробела?
Но таким образом, чтобы это работало в обе стороны - если есть ошибка, то в группах (MatchCollection)
будут:[1]: ifvalue [2]: value == 10
[1]: if [2]: value == 10
\s?(if\S*)\s?(.*)\s?{
Спасибо.
PS.
Ещё в другом месте (для проверки условия) использую такую регулярку:(!|<|>)=?|==
Решение задачи: «Регулярное выражение для проверки if»
textual
Листинг программы
// if name == "world" { // \s?if\s?(.*)\s?{ - 1 // \s?(if(\S*))\s?(.*)\s?{ - 2 var match = Regex.Match(innerData, @"\s?(if\S*)\s?(.*)\s?{"); var condition = match.Groups[2].Value; if (!Regex.IsMatch(condition, @"(!|<|>)=?|==") || string.IsNullOrEmpty(condition) || match.Groups[1].Value.Trim().Length > 2) throw new ArgumentException(innerData);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д