繁体   English   中英

删除 python 中字符串中每次出现的“第 X 章”

[英]Remove every occurance of 'Chapter X' in string in python

我希望删除所有出现的“第 X 章”,其中 X 为 {1,2,3...}。 我的想法是使用 f 字符串,但这只会删除“章节”,而不是数字。 关于如何删除号码的任何帮助? 我需要在不使用正则表达式的情况下执行此操作。

    for i in text:
        text = text.replace(f'Chapter {i}',"")

如果您已经知道章节数,则可以使用您的技术。 请注意,您的代码片段有一个错误: for i in text迭代一个字符串,并且i是一个字符,而不是一个数字。

for i in range(number_of_chapters)[::-1]:
    text = text.replace(f'Chapter {i + 1}', "")

为什么这行得通? 首先,您需要了解range是如何工作的。

  • range(end) : range(10)将返回“列表” [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • range(start, end) : range(2, 10)将返回“列表” [2, 3, 4, 5, 6, 7, 8, 9]
  • range(start, end, increment) : range(2, 10, 3)将返回“列表” [2, 5, 8]

包括start ,不包括end 。默认start为 0,默认incremenet为 1。

我正在使用第一个版本,它从 0 到number_of_chapters - 1。因为您的章节可能从 1 到number_of_chapters开始,然后将 + 1 添加到i

[::-1] :它反转了“列表”,因此您将从结尾(第 61 章)到开头(第 1 章)。 这可以防止将“第 60 章”替换为“0”等问题,因为您已经替换了“第 6 章”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM