我正在尝试编写一个 BBS 程序,我希望能够输入 ^Qc6} 之类的内容并让它切换文本颜色。我已经弄清楚了大部分,通过使用正则表达式搜索并找到我想要匹配的文本,当我逐行读取文件时,它会找到我想要匹配的所有实例。
但是当我使用 .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")