文字列の前後の一致を取得したいと思います。例えば文字列の前後の一致を取得するにはどうすればよいですか?
は、以下の文字列を使用して:検索文字列をされた状態で
"Hello I am Jim!"
を:"Hello"
と試合をした後でなければなりません:"I am"
、検索文字列の前に試合があるべき"Jim!"
。
どうすればこの問題を解決できますか?
文字列の前後の一致を取得したいと思います。例えば文字列の前後の一致を取得するにはどうすればよいですか?
は、以下の文字列を使用して:検索文字列をされた状態で
"Hello I am Jim!"
を:"Hello"
と試合をした後でなければなりません:"I am"
、検索文字列の前に試合があるべき"Jim!"
。
どうすればこの問題を解決できますか?
また、アピールする良い方法があるsplit()
>>> before, after = "Hello I am Jim!".split("I am")
>>> before
'Hello '
>>> after
' Jim!'
まさにこの行い使用str.partition
:
S.rpartition(sep) -> (head, sep, tail)
S
セパレータsep
を検索、S
の終わりで始まり、そして、その前に、セパレータ自体を一部を返し、それの後の部分。だから、
、あなたの例の文字列を使用して:
before, search_str, after = "Hello I am Jim!".partition("I am ")
は今before
、search_str
とafter
は、次のとおりです。
>>> print(before)
Hello
>>> print(search_str)
I am
>>> print(after)
Jim!
str.partition
することもで真ん中の要素として、あなたのため区切りをつかみます返されたタプル。それを必要としない場合は、str.split(separator)
で十分です。
回答を使用することができますが、あなたはまた、Pythonの文字列操作は同じポイントを取得するための最も基本的な操作を見つけることができます。達成するために、様々な方法で
s = "Hello I am Jim!"
print s.find('I am')
for i in range(s.find('I am')):
print s[i],
for i in range(s.find('I am')+len('I am'),len(s)):
print s[i],
python team.py
6
H e l l o J i m !
、その後、ここでは最も単純なアプローチ
を選択する別の方法です:
>>> import re
>>> str1 = "Hello I am Jim!"
>>> before, after = re.split(" I am ", str1)
>>> before
'Hello'
>>> after
'Jim!'
は