Я пытаюсь проанализировать имя класса и содержимое, заключенное в класс js, с помощью регулярных выражений. Я использую python для анализа. Вот пример кода, который я пытаюсь разобрать. То, что я ожидаю получить путем сопоставления с регулярным выражением, это список имен классов и всего содержимого внутри класса (все методы, переменные)
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
class Square {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
Я написал этот шаблон, чтобы соответствовать приведенному выше коду
class\s(.*)\{(.*)\}
Но это совпадает по-разному, как показано на рисунке
![enter image description here](https://i.stack.imgur.com/DALkQ.png)
Насколько я знаю, регулярное выражение, которое должно останавливаться сначала вьющимися скобка, остановился на фигурной скобке второго класса, что я делаю не так, как правильно решить эту проблему?