Регулярное выражение Python извлекает строки между подстроками, которые начинаются с определенных критериев

Я отредактировал это, чтобы быть более понятным и предоставить решение.

Я хотел бы использовать регулярное выражение для поиска в подстроках текста, начинающегося с символов --, и извлечения всего текста, следующего за этой строкой. У меня уже есть обе части, успешно работающие по отдельности (1. поиск подстроки и 2. поиск --), я просто не уверен, как их эффективно объединить. У меня есть строка -

qry = ''' 
with 
qry_1 as ( -- some text
   SELECT ID, 
          NAME
   FROM   ( ... other code...
),
qry_2 as ( 
    SELECT coalesce (table1.ID, table2.ID) as ID,
           NAME
   FROM (...other code...
),
qry_3 as (
-- some text
     SELECT id.WEATHER AS WEATHER_MORN,
            ROW_NUMBER() OVER(PARTITION BY id.SUN
                ORDER BY id.TIME) AS SUN_TIME,
            id.RAIN,
            id.MIST
   FROM (...other code..
-- some other text
)
'''
  1. Я могу извлечь информацию о подзапросе через re.findall здесь -
sub = re.findall('\),\s{2,}(.*?)as\s\(',qry)
  1. И специальный поиск символов
re.findall(r'--+(.*)(.\s)',qry)
  1. Чтобы в конечном итоге использовать для поиска между строками комментарий.

Но как успешно включить шаг 3?

Спасибо за руководство здесь


person paranormaldist    schedule 29.03.2021    source источник
comment
Я бы начал с обработки строки построчно.   -  person Justin Ezequiel    schedule 29.03.2021


Ответы (1)


Шаг 3 успешно выполнен

commentary = [re.findall(r'--+(.*)(.\s)', i) 
     for i in re.findall('\),\s{2,}(.*?)as\s\(',qry,flags=re.S)]
person paranormaldist    schedule 05.04.2021