def sub_the_chinese_colon_of_the_question_number(_lines: str) -> str: """ :param _lines:清理后的文本文件内容 功能:查找并替换题号后的中文冒号为英文冒号。 """ # 定义替换函数,用于调用re.sub: def replacement(match) -> str: """ :param match:匹配对象 功能:保持匹配对象中比例的中文冒号,其他替换为英文冒号。 假设:中文冒号后内容三种可能情况:1)非数字,如:企业员工应;(替换) 2)数字年份,如:2001年;(替换) 3)比例,如:1:1。(保持) """ group0 = match.group(0) # 整个匹配表达式 pat_match = re.compile(r'\D|\d{4}年') # 编译正则表达式 if pat_match.match(match.group(1)): # 匹配中文冒号后为非数字/数字年份 print(f'{Fore.LIGHTGREEN_EX}已替换“{group0}”(:后为非数字/数字年份)', end='。') ou.print_current_line_number() # 打印当前行号 group0 = group0.replace(':', ':') # 中文冒号替换为英文冒号 else: # 比例,保持中文冒号 print(f'{Fore.LIGHTYELLOW_EX}未替换“{group0}”(比例中的“:”)', end='。') ou.print_current_line_number() # 打印当前行号 return group0 pat_sub = re.compile(r'\d{1,3}:(.{5})') # 匹配数字:(中文冒号),取5个任意文字是为了年份(2001年) return pat_sub.sub(replacement, _lines)
标签:中文,冒号,sub,Python,group0,替换,match From: https://www.cnblogs.com/zdt168/p/18394207