2016-09-07 27 views
0

任何人都知道我怎麼能找到被空格包圍的中心的字符?Python檢測被空格包圍的字符

1 + 1

我希望能夠在+在中間分開的if/else語句的使用。

對不起,如果我不太清楚,我是一個Python初學者。

+0

你的問題」不是個清除,你需要一些正則表達式的解決方案? –

回答

5

我認爲你正在尋找類似split()的方法,默認情況下會在空白處分割。

假設我們有一個字符串s

s = "1 + 1" 
chunks = s.split() 
print(chunks[1]) # Will print '+' 
+0

謝謝!你能檢測一個字符串有多少塊? – MasterHolbytla

+1

沒問題!你可以使用'len(塊)'來獲得你擁有的塊數。 –

0

您可以使用正則表達式:

s="1 + 1" 
a=re.compile(r' (?P<sym>.) ') 
a.search(s).group('sym') 
1

這個正則表達式將檢測用空格包圍的單個字符,如果字符是一個加或減或多或div標誌:r' ([+-*/]) '。請注意撇號內的空格。括號在中間「捕捉」角色。如果您需要識別不同的字符集,請更改括號內的集合。

如果您之前沒有處理正則表達式,請閱讀re模塊。它們對於簡單的文本處理非常有用。這裏的兩個相關特徵是「字符類」(我的例子中的方括號)和「捕獲圓括號」(圓括號)。

0

不知道有多少空格分隔的核心人物,那麼我會使用以下方法:

s = '1 + 1' 
middle = filter(None, s.split())[1] 
print middle # + 

split作品由扎克提供的解決方案,但如果有比一個單一的空間更大,那麼返回的列表將會包含一堆''元素,我們可以使用filter(None,)函數將其刪除。

然後這只是一個提取你的第二個元素的問題。

檢查它在行動,在https://eval.in/636622

如果我們看它一步一步,那麼這裏就是如何使用Python的控制檯的所有作品:

>>> s = '1 + 1' 

>>> s.split() 
['1', '+', '', '', '1'] 

>>> filter(None, s.split()) 
['1', '+', '1'] 

>>> filter(None, s.split())[1] 
'+' 
0
import re 

def find_between(string, start_=' ', end_=' '): 
    re_str = r'{}([-+*/%^]){}'.format(start_, end_) 
    try: 
     return re.search(re_str, string).group(1) 
    except AttributeError: 
     return None 

print(find_between('9 * 5', ' ', ' '))