这是我设计的规则图案。应用这个例子是正确的,但我不确定它是否可以应用于您的特定场景。这实际上是一个常规的匹配问题,而不是Python代码问题。
  
  text = """
*******************************************************************************
*                                                                             *
*                         int. normalized  values  of  :                      *
*                         ---------------------------                         *
*                      % of irradiance at ground level                        *
*     % of direct  irr.    % of diffuse irr.    % of enviro. irr              *
*               0.488               0.418               0.093                 *
*                       reflectance at satellite level                        *
*     atm. intrin. ref.   background  ref.  pixel  reflectance                *
*               0.127               0.146               0.170                 *
*                                                                             *
*                         int. absolute values of                             *
*                         -----------------------                             *
*                      irr. at ground level (w/m2/mic)                        *
*     direct solar irr.    atm. diffuse irr.    environment  irr              *
*             592.299             507.010             113.283                 *
*                      rad at satel. level (w/m2/sr/mic)                      *
*     atm. intrin. rad.    background  rad.    pixel  radiance                *
*              58.837              67.355              78.685                 *
*                                                                             *
*                                                                             *
*                      sol. spect (in w/m2/mic)                               *
*                                2054.457                                     *
*                                                                             *
*******************************************************************************
"""
import re
def extract_values(text):
    # pattern = r"direct solar irr\.\s*atm. diffuse irr\.\s*environment irr\s*([\d\.]+)\s*([\d\.]+)\s*([\d\.]+)"
    pattern = r"direct solar irr\.\s*atm\. diffuse irr\.\s*environment  irr.*\n.*?\s*([\d\.]+)\s*([\d\.]+)\s*([\d\.]+)"
    match = re.search(pattern, text)
    # print(match.groups())
    if match and match.groups():
       return {
            "direct solar irr.": match.group(1),
            "atm. diffuse irr.": match.group(2),
            "environment irr.": match.group(3)
        }
if __name__ == '__main__':
    data = extract_values(text)
    print(data)
  
   需要找到规则,
你的数据肯定会在这个字符串下面吗?
我知道,如果它真的在下面,它可以通过这种方式提取。即使您有一个包含多行的文本,也可以通过这种方式提取这组数据,但唯一需要考虑的是性能问题,这可能需要更精确的场景。
  
      lines = text.split('\n')
    data_index = [i for i, line in enumerate(lines) if 'direct solar irr.    atm. diffuse irr.    environment  irr' in line]
    data_index = data_index[0] if data_index else None
    if data_index is None:
        raise ValueError
    value_line = lines[data_index+1].strip("*").strip()
    for v in value_line.split():
        print(v)