我想在一個字符串之後和之前匹配。我怎樣才能得到一個字符串之前和之後匹配?
例如,使用以下字符串:
"Hello I am Jim!"
與搜索串是:"I am"
,搜索字符串之前匹配應該是:"Hello"
和之後的匹配應該是:"Jim!"
。
我該如何做到這一點?
我想在一個字符串之後和之前匹配。我怎樣才能得到一個字符串之前和之後匹配?
例如,使用以下字符串:
"Hello I am Jim!"
與搜索串是:"I am"
,搜索字符串之前匹配應該是:"Hello"
和之後的匹配應該是:"Jim!"
。
我該如何做到這一點?
您還可以使用split()
>>> before, after = "Hello I am Jim!".split("I am")
>>> before
'Hello '
>>> after
' Jim!'
使用str.partition
這正是這一點:
S.rpartition(sep) -> (head, sep, tail)
搜索分隔
sep
在S
,開始在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!'