2016-05-25 4 views
-3

私はかなり単純なPythonプログラムを作成して、特定のサイトからビデオを検索してダウンロードしています。私はstrが存在する場合はPython 3がstrに置き換えられます

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が存在する場合は、それ以外の場合は交換しますか?

+0

あなたは何を試しましたか、それに問題はありますか?あなたは[tag:regex]を使ったことがありますか?* – jonrsharpe

+0

基本的に 'HDTV | HDRip | 720p | X264'があります。 – sln

+0

@Jackデュペを参照してください。問題を正確に解決します。また、関連する問題は[辞書を使ってテキスト文字列を検閲し、単語をXで置き換えることです。 Python](http://stackoverflow.com/q/16675634) –

答えて

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

これはあまりにも遅いので、交互に正規表現を使用してワンショットで実行してください。 – sln

+0

@Kevinはdictの望ましくない単語の 'dict = {'720p': '1080p'}を行うことができました:title = title.replace(望ましくない単語、" ")'私は '非基本的な' 。 –

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

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

ない非常にニシキヘビが、それはあなたが望む

+1

そこに条件付きがある点はあまりありません。 HDTVがタイトルにない場合、 'title = title.replace( 'HDTV'、 '')は何もしないので、とにかくそれを実行するのは無害です。 – Kevin

+0

知っておいてよかったですが、私はtitle.replaceが不要な単語が存在しなかった場合にはトレースバックを返すと考えました – WildCard

0

簡単な例でしょう。これで唯一の問題は、あなたができた単語を置き換えたい場合ということです

string = 'The Big Bang Theory S09E15 720p HDTV X264-DIMENSION' 
dict = {'720p':'1080p'} # format 'substring':'replacement' 

for key, value in dict.iteritems(): 
    if key in string: 
    string.replace(key,value)   

を別の言葉の一部になる。たとえば、 'an'をaに置き換えたい場合、この例の文字列は 'The Big Bag Theory ...'になります。これを修正するには、文字列を単語のセットに分割して辞書のエントリと比較することを試みます。

0

Kevinsの答えはあなたのために動作しますが、念のためにあなた自身がregex使いたい見つける:あなたが行ってきましたスペースに気づくでしょうとして、また

The Big Bang Theory S09E15 -DIMENSION 

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) 

プリントを置き換えたい文字列がまだ残っている場合は、string_to_replaceに空白を含めるように変更することができます:["HDTV ", "HDRip ", "720p ", "X264 "]とすると、出力は

となります
The Big Bang Theory S09E15 X264-DIMENSION 
+0

@ ZWikiこれまでの自分の好みのようですが、お元気ですか? –

+0

@JackHerer、申し訳ありません。 "|"論理ORのようなものです。これは、 "HDTV | HDRip | 720p | x264"を生成するように文字列を結合します。正規表現では、これらの文字列のいずれかと一致する場合は何も置き換えません。 'flags = re。私も大文字小文字を無視しています。大文字小文字を区別したい場合は除外できます。 – ZWiki

+0

@ ZWiki ..巧妙な説明、歓声、そして不要な文字列を置き換えた後にスペースをハイフンに置き換えています –

関連する問題