Python实现字符串中指定剧集数字递增的方法求助
剧集数字自动加1的实现方案
针对你需要将字符串中Episodes: 01/5这类格式的当前集数加1的需求,可通过正则表达式配合回调函数实现,以下是具体方案:
核心思路
- 用正则精准匹配
[B]Episodes: [/B]后的XX/YY格式内容,拆分出当前集数和总集数 - 通过回调函数对当前集数执行加1运算,同时保留原有的数字位数格式(如01→02,09→10)
- 重新拼接成新的剧集格式替换原内容
代码实现(Python为例)
import re def increment_episode(match): prefix = match.group(1) current_ep = int(match.group(2)) total_ep = match.group(3) # 加1后格式化,保持两位数(不足补零) new_current = f"{current_ep + 1:02d}" return f"{prefix}{new_current}/{total_ep}" # 你的原始字符串 original_str = """[CENTER] [FONT=Courier New][COLOR=#00ffff][B][U][SIZE=4]{title}[/SIZE][/U][/B][/COLOR][/FONT] [IMG]{cover}[/IMG] [IMG]IMAGE[/IMG][/CENTER] [QUOTE] {description_de} [/QUOTE] [CENTER] [IMG]IMAGE[/IMG] [B]Duration: [/B]~5 min [B]Genre: [/B]Action [B]Subgenre: [/B]Mystery, Scifi [B]Language: [/B]English [B]Subtitles: [/B]German [B]Episodes: [/B]01/5 [IMG]IMAGE[/IMG] [spoiler] [spoiler=720p] [CODE=rich][color=Turquoise] {mediaInfo1} [/color][/code] [/spoiler] [spoiler=1080p] [CODE=rich][color=Turquoise] {mediaInfo2} [/color][/code] [/spoiler] [/spoiler] [hide] [IMG]IMAGE[/IMG] [/hide] [/CENTER]""" # 执行替换 updated_str = re.sub(r'(\[B\]Episodes: \[\/B\])(\d{1,2})\/(\d{1,2})', increment_episode, original_str)
关键说明
- 正则表达式
r'(\[B\]Episodes: \[\/B\])(\d{1,2})\/(\d{1,2})':- 第一组捕获
[B]Episodes: [/B]前缀,确保只修改剧集行的数字 - 第二组捕获当前集数(1-2位数字),第三组捕获总集数
- 第一组捕获
- 回调函数
increment_episode负责数字运算和格式还原,保证加1后仍保持两位数格式(如09加1后变为10,而非1)
替换效果示例
原剧集行:
[B]Episodes: [/B]01/5
替换后:
[B]Episodes: [/B]02/5
内容的提问来源于stack exchange,提问作者kiddo
相关产品推荐
相关产品推荐

