2017-11-07 16 views
-3

pythonでregexを使用して式を作成し、文字列の最初の単語を取得しました。しかし、この場合はPONYのように特定の単語を見つける方法はありますか?彼らは両方とも4文字の文字で、後者は大文字ですから、私はPONY正規表現を使用して見つけることが可能だと思います。私は最初のものの表現しかできませんでした!正規表現を使用して文字列から単語を取得できません

import re 

arg_str = "Jony is after PONY not phoney" 
item = re.findall(r'([a-zA-Z]...+?)',arg_str) 
print(item[0]) 
+1

どういう意味ですか?どのように 'ポニー'を得るためのルールを記述することができますか? ['arg_str.split()[3]'](https://ideone.com/xFGNtP)? –

+1

'(pony)'は正確な単語を見つけるのに役立ちます。 – harshil9968

+0

"specificword"の正規表現は "specificword"です。 – timgeb

答えて

1

どれでも特定の単語:私は最初の単語を見つけることを試みた何

?次はどうですか?

words = re.findall(r" *\w+ *", arg_str) 

for word in words: 
    print(word) 

出力:

arg_str = "Jony is after pony not phoney" 
print(arg_str.find("pony")) 

あなたが最初の単語を検索する場合:

Jony 
is 
after 
pony 
not 
phoney 
+0

あなたの答えはサムチャットに感謝します。今私はインデックスを使って欲しいものを手に入れることができます。 Btw、あなたはどうしたの?私の無知を許しなさい。ありがとう。 – SIM

+0

@Toptoスペースに続く*は、\ w +を囲むゼロ以上のスペースを意味します。これは複数の英数字または単語を意味します。 –

+0

Sam Chatsに感謝します。これは+1です。 – SIM

0

あなたは、文字列内の単語の最初の発生を見つけるstr.findを使用したい場合:

print(arg_str.split()[0]) 
+1

findは部分文字列を見つけます:ex: 'epony' –

+0

* '部分文字列subがスライス内で見つかった文字列の中で最も小さいインデックスを返します。' [start:end] '* –

関連する問題