0

私は BBS プログラムを作成しようとしていますが、^Qc6} のようなものを入力して、テキストの色を切り替えられるようにしたいと考えています。正規表現検索を使用して一致させたいテキストを見つけることで、ファイルを1行ずつ読み取ると、一致させたいすべてのインスタンスが見つかります。

しかし、.replace() メソッドを使用すると、処理中の行の最初のインスタンスだけが置き換えられます。他のすべては次の行までありません。したがって、これを修正する方法がわかりません。

#!/usr/bin/env python

import sys
import re

ansi_colors = {"c0" : "\033[0.30m" , "c1" : "\033[31m" , "c2" : "\033[0.32m" , "c3" : "\033[0.33m" , "c4" : "\033[0.34m" , "c5" : "\033[0.35m" , "c6" : "\033[0.36m" , "c7" : "\033[0.37m"}

display = open('sys.start','r')
for lines in display:
    match = re.search(r'(\^Q)(\w+)(\})' , lines)
    if match:
      lines = lines.replace(match.group() , ansi_colors[match.group(2)]).strip("\n")
      #print(match.group() + " should be " + ansi_colors[match.group(2)] + "this color.\033[0m")
      print(lines)
    else: print(lines).strip("\n")
4

1 に答える 1