特定の単語の1つが別の特定の単語で終わらない場合は、そのままにしておきます。ここに私の文字列は次のとおりです。指定された文字列内の2つの特定の単語の間の単語を印刷する
x = 'john got shot dead. john with his .... ? , john got killed or died in 1990. john with his wife dead or died'
私はjohn
がdied or dead or death
のいずれかのワードで終わらない場合john
とdead or death or died.
間のすべての単語を印刷してカウントします。それを残す。ジョンの言葉でやり直してください。
私のコード:
x = re.sub(r'[^\w]', ' ', x) # removed all dots, commas, special symbols
for i in re.findall(r'(?<=john)' + '(.*?)' + '(?=dead|died|death)', x):
print i
print len([word for word in i.split()])
私の出力:私はしたい
got shot
2
with his john got killed or
6
with his wife
3
出力:
got shot
2
got killed or
3
with his wife
3
私は間違いをしています。ここで、iは知りません。 これは単なるサンプル入力です。私は20,000の入力を一度にチェックしなければならない。
あなたのポイントが明確ではありません。彼のジョンが殺されたか、ジョンの言葉の後に来るので、6と計算されますか? –
@MarlonAbeykoon 'ジョンと彼の....?ジョンが殺された、または死んでしまった」という第1のジョンの言葉は、「死んでいるか死んでいるのか死んでいるのか」という言葉はありません。第2の「ジョン」単語から始める。私が欲しいと思っているのは、彼のジョンが殺されてしまった、または殺されたということです。 –