Как сделать регулярное выражение, определяющее уровень вложенности циклов? Для программы, содержащей несколько вложенных циклов используя регулярные выражения определить уровень вложенности циклов.
т.е. как оно работает:
Скармливаем регулярке код:...
for(var i=0;i<10;i++){
something();
if(){
....
}
while(true){
for(var i=0;i!=3;i++){
...
}
}
}
...
И она нам должна вернуть что вложенность 3.
Программа написана на JAVA, соответственно она использует что-то типа:final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
i++;
}
Где i - количество совпадений вложенности
Я так понимаю нам надо что-то типа(for|while){(*^})(if{*})(*^})(for|while)
Но в регулярных выражениях я слабоват и написал глупость, нужна помощь :)

21 Авг 2019 в 07:03
207 +1
1
Ответы
1

Для определения уровня вложенности циклов в программе можно использовать следующее регулярное выражение:

String regex = "(for|while|if)\\s*\\(.*?\\)\\s*\\{";

Это регулярное выражение будет искать конструкции циклов и условий вида "for", "while" или "if" за которыми идут открывающие фигурные скобки.

Пример использования:

String string = "for(var i=0;i<10;i++){ something(); if(){...} while(true){for(var i=0;i!=3;i++){...}}}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
int i = 0;
while (matcher.find()) {
i++;
}
System.out.println("Уровень вложенности циклов: " + i);

Этот код должен вывести уровень вложенности циклов в вашей программе. Надеюсь, это поможет вам решить вашу задачу!

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир