Python 3,如果str存在则替换为str

时间:2016-05-25 17:48:25

标签: python regex string replace

我正在编写一个相当简单的python程序来查找和下载特定网站的视频。我希望我的脚本使用页面标题命名该文件,除了页面标题包含我想删除的各种字符串,例如,

The title is: 
The Big Bang Theory S09E15 720p HDTV X264-DIMENSION

但标题并不总是一致的,例如,

The title is:
Triple 9 2016 READNFO HDRip AC3-EVO

如果字符串存在,我该如何替换它? 也许创建一个可能字符串的列表或字典,如果它们存在然后删除它们(或用空字符串替换)?我试过并试图找到答案,但找不到任何有助于我的情况的事情。

基本上如果"HDTV", "HDRip", "720p", "X264", etc存在,那么替换它们否则继续?

4 个答案:

答案 0 :(得分:1)

for undesired_word in ("HDTV", "HDRip", "720p", "X264"):
    title = title.replace(undesired_word, "")

答案 1 :(得分:0)

title = 'The Big Bang Theory S09E15 720p HDTV X264-DIMENSION'

if 'HDTV' in title:
    title = title.replace('HDTV', '')

不是非常pythonic但它会做你想要的

答案 2 :(得分:0)

简单示例:

if

唯一的问题是,如果你想替换一个可能是另一个词的一部分的单词。例如,如果你想用a代替'an',那么这个例子中的字符串将成为'The Big Bag Theory ...'。为了解决这个问题,我会尝试将字符串分解成一组单词并将单词与字典条目进行比较。

答案 3 :(得分:0)

Kevins的答案对你有用,但万一你发现自己想要使用regex

import re
string_to_replace = ["HDTV", "HDRip", "720p", "X264"]
regex_string = r"|".join(string_to_replace)
S = "The Big Bang Theory S09E15 720p HDTV X264-DIMENSION"
new_string = re.sub(regex_string, "", S, flags=re.I)
print(new_string)

打印:

The Big Bang Theory S09E15   -DIMENSION

另外,正如您将注意到在您替换的字符串后面的空格仍然存在,如果您不希望这样,您可以更改string_to_replace以包含空格,如下所示:{{1}这将导致输出为:

["HDTV ", "HDRip ", "720p ", "X264 "]