2016-02-05 437 views
0

我有一個我想要處理的表單(一個字符串)。表單可以包含某些事件,例如:>>1244使用Python查找某個關鍵字後的數字

我需要在每次出現>>後抓取每個數字,但我不知道如何。我在想正則表達式,但我很糟糕。我已經閱讀了幾個類似的問題,但答案是截然不同的,不適用於此(它們在關鍵字後面找到下一個WORD),或者有時使用矛盾的方法。

這樣做的最好方法是什麼?謝謝。

+0

你是什麼意思?我不應該問問做什麼最好的方法是什麼? – Man

+0

它清楚地表明:「表單可以包含某些事件」,該句子告訴你1.「某些事件」,這意味着它們不必處於起始處,也可以用於複數形式,這意味着可以有多個2我在「1234」例子之前說「例如」,誰會認爲它總是會是1234?你是認真的嗎? – Man

+1

我收回了我的評論。我的錯是沒有仔細閱讀。 downvote不是我的。 –

回答

3

可以使用findall()positive look behind

>>> import re 
>>> 
>>> s = ">>1244" 
>>> re.findall(r"(?<=>>)\d+", s) 
['1244'] 
>>> 
>>> s = ">>1244 something >>500" 
>>> re.findall(r"(?<=>>)\d+", s) 
['1244', '500'] 

這裏(?<=>>)\d+表達式將匹配一個或多個數字(\d+)的>>後走了。

0

如果就這麼簡單到你只想找的>>單次數,並希望抓住這串之後的一切,你可以這樣做:

mystring = "1234>>5678" 
after = mystring.split(">>")[1] 

這將字符串分割成一個列表在「>>」處,然後抓住列表的第二個元素,這將是「>>」之後的所有內容。

1

您可以使用正則表達式,請嘗試:

s = ">>1244 aaa >>112 >>344>>456 aaa sss >>345 >>aa 567" 

import re 

result = re.findall(">>(\d+)",s) 

print result 

輸出:

['1244', '112', '344', '456', '345'] 

記住的FindAll返回組的列表,如果有團體。您指示使用'('和')'分別啓動和終止的組。

Look:https://docs.python.org/2/library/re.html

相關問題