import re path = 'templates/backtest.html' with open(path, 'r', encoding='utf-8') as f: html = f.read() prefixes = ['bt', 'tl', 'bo', 'mom', 'usmom'] for prefix in prefixes: # 1. find the eod_enabled div regex_enabled = re.compile( r'(\s*
\s*
\s*]*>\s*]*>EOD청산\s*
\s*
)', re.DOTALL ) # 2. find the eod_hm div regex_hm = re.compile( r'(\s*
\s*]*>EOD시각.*?\s*]*>\s*
)', re.DOTALL ) # fallback for bt_eod_hm which uses col-4 col-md-1 regex_hm2 = re.compile( r'(\s*
\s*]*>EOD시각.*?\s*]*>\s*
)', re.DOTALL ) enabled_match = regex_enabled.search(html) hm_match = regex_hm.search(html) or regex_hm2.search(html) if not enabled_match or not hm_match: print(f"Failed to match {prefix}") continue enabled_str = enabled_match.group(1) hm_str = hm_match.group(1) # Remove from html html = html.replace(enabled_str, '') html = html.replace(hm_str, '') # We want to insert the new EOD block after the closing of the row. # To do this robustly, we will insert it right before the next "', new_block + '\n ') elif prefix == 'tl': html = html.replace('', new_block + '\n ') elif prefix == 'bo': html = html.replace('', new_block + '\n ') elif prefix == 'mom': html = html.replace('
\n
\n