Python正则表达式提取以特定条件开头的子字符串之间的行

Python正则表达式提取以特定条件开头的子字符串之间的行,python,regex,string,findall,Python,Regex,String,Findall,我对其进行了编辑,以使其更加清晰并提供解决方案 我想使用正则表达式在子字符串中搜索以字符--开头的文本,并提取该行后面的所有文本。我已经成功地将这两个部分分开工作(1.子字符串搜索和2.--搜索),我只是不知道如何有效地将它们结合起来。我有一根绳子- qry = ''' with qry_1 as ( -- some text SELECT ID, NAME FROM ( ... other code... ), qry_2 as ( SELE

我对其进行了编辑,以使其更加清晰并提供解决方案

我想使用正则表达式在子字符串中搜索以字符
--
开头的文本,并提取该行后面的所有文本。我已经成功地将这两个部分分开工作(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
)
'''
  • 我可以通过这里的
    re.findall
    提取子查询信息-
  • 和特殊字符搜索
  • 最终用于在字符串之间搜索注释
  • 但是如何成功地合并步骤3


    感谢您在此提供指导

    步骤3成功运行

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

    我首先逐行处理字符串。
    re.findall(r'--+(.*)(.\s)',qry)
    
    commentary = [re.findall(r'--+(.*)(.\s)', i) 
         for i in re.findall('\),\s{2,}(.*?)as\s\(',qry,flags=re.S)]