2016-11-17 4 views
0

を交換するための指令条件を置き換え彼らは言葉を交換したいユーザーのタイプ:"was"は、文字列内の特定の単語を置き換えますがfollowinf結果を得続けるしたい文字列

新しい文字列:"Thwas was my sentence."

見つかった文字列の代わりに "is"という単語だけを置き換えることができますか?

コード機能:

import string 
def replace(word, new_word): 
    new_file = string.replace(word, new_word[1]) 
    return new_file 

すべてのヘルプははるかに高く評価されて、ありがとうございました!

+0

Good find。私は重複を検索しましたが、 "置き換える"という用語ではなく、 "見つける"という用語で検索しました。 –

+0

私はこうしました。[pythonは部分的な単語ではなく単語を置き換えます](https://www.google.ca/search?client=safari&rls=en&q=python+replace+words+not+partial+words&oq=python+replace+words+ not + partial + words&gs_l = serp.3 ... 44021.51387.0.51523.33.30.0.3.3.0.127.2123.23j5.28.0 .... 0 ... 1c.1.64.serp.2.18.1097 ... 0j​​0i67k1j0i131k1j0i22i30k1j33i21k1。 0mLcUwAiDdk)。私は部分的な言葉ではないという言葉がここで重要だと思う。 –

+0

少なくとも今では "交換"部分がカバーされています:) –

答えて

4

print(re.sub(r"\bis\b","was","This is, of course, my sentence")) 

ができます:

This was, of course, my sentence 

注:をスキップしないでください接頭辞、または正規表現が壊れている可能性があります。\bはバックスペースと解釈されます。

+0

ありがとう!これは私のプログラムには完璧でした! –

+1

@ Jarred McMahan答えがあなたのために働いた場合は、「回答しました」とマークされるようにそれを受け入れてください。 – falloutcoder

1

正規表現を使用せずにシンプルだが万能ではないソリューション(Jean-Francios Fabreが与えたもの)。句読点と作品だけでなくので、単なる分割より良い

import re 

print(re.sub(r"\bis\b","was","This is my sentence")) 

:正規表現のワード境界を使用して

' '.join(x if x != word else new_word for x in string.split()) 
+1

これは、すべての空白をスペースで効果的に置き換えているため、元の空白を維持しません。また、あなたの答えにいくつかの情報を与えてください、ちょうどコードの一行は本当にすべての有用なものではありません。 –

+0

@ジーン:それ以上に同意できませんでした。ヒントとヒント(y)のおかげで – falloutcoder

+0

正規表現を使用したくない場合はあまり悪くないです。ピジョンも同様です。 –

関連する問題