Регулярное выражение для проверки 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д