繁体   English   中英

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

[英]Python regex extract lines between substrings that start with certain criteria

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

我想使用正则表达式在子字符串中搜索以字符开头的文本--并提取该行之后的所有文本。 我已经让这两个部分成功地单独工作(1. substring 搜索和 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 步呢?

在此感谢您的指导

第三步成功运行

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM