Я пытаюсь извлечь определенные данные из LookML, определенного языка разметки.Если это пример кода:
explore: explore_name {}
explore: explore_name1 {
label: "name"
join: view_name {
relationship: many_to_one
type: inner
sql_on: ${activity_type.activity_name}=${activity_type.activity_name} ;;
}
}
explore: explore_name3 {}
Тогда я получу список, похожий на:
По сути, я начинаю матч в «исследовать» и заканчиваю его, когда нахожу еще один «исследовать» - который затем начнетсяследующий матч
Вот то, что у меня было раньше, которое совпадает по всем строкам, пока не найдет ;
, и это прекрасно работает: 'explore:\s[^;]*'
.Но это останавливается на ';', при условии, что он есть.
Как бы я изменил это так, чтобы он убрал все между «исследовать» и «исследовать»?Просто заменив ';'в моем регулярном выражении «исследовать» вместо этого останавливается всякий раз, когда он находит букву, которая соответствует чему-либо в [e, x, p, l, o, r, e] - что не является тем поведением, которое я хочу.Снятие квадратных скобок и ^ в конечном итоге разбивает все так, что он не может запрашивать несколько строк.
Что мне здесь делать?