Python3.9如何过滤字符串中§加单字符格式符号提取目标纯文本
解决方案
问题根因
- 你当前的代码仅删除了
§字符本身,没有同步删除§后紧跟的1位格式控制字符,导致残留c/l/r等无效标识 - 代码中的
return语句未放在函数定义范围内,直接运行会抛出语法错误 - 用
filter做变量名会覆盖Python内置的filter()方法,属于不规范的命名习惯
实现方法
方法1:正则表达式(最简洁)
直接匹配§加其后1位任意字符,批量替换为空即可:
import re star = "§c§l2§6§l0§e§l0§a§l*§r" result = re.sub(r'§.', '', star) print(result) # 输出:200*
方法2:遍历实现(不用正则的场景)
通过下标遍历字符串,遇到§就跳过当前和下一个字符,其余字符保留:
star = "§c§l2§6§l0§e§l0§a§l*§r" result = [] i = 0 length = len(star) while i < length: if star[i] == '§': # 跳过§和后面的控制字符共2位 i += 2 else: result.append(star[i]) i += 1 result = ''.join(result) print(result) # 输出:200*
内容的提问来源于stack exchange,提问作者ouwobby
相关产品推荐
相关产品推荐

