我有一個我想要處理的表單(一個字符串)。表單可以包含某些事件,例如:>>1244
。使用Python查找某個關鍵字後的數字
我需要在每次出現>>
後抓取每個數字,但我不知道如何。我在想正則表達式,但我很糟糕。我已經閱讀了幾個類似的問題,但答案是截然不同的,不適用於此(它們在關鍵字後面找到下一個WORD),或者有時使用矛盾的方法。
這樣做的最好方法是什麼?謝謝。
我有一個我想要處理的表單(一個字符串)。表單可以包含某些事件,例如:>>1244
。使用Python查找某個關鍵字後的數字
我需要在每次出現>>
後抓取每個數字,但我不知道如何。我在想正則表達式,但我很糟糕。我已經閱讀了幾個類似的問題,但答案是截然不同的,不適用於此(它們在關鍵字後面找到下一個WORD),或者有時使用矛盾的方法。
這樣做的最好方法是什麼?謝謝。
可以使用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+
)的>>
後走了。
如果就這麼簡單到你只想找的>>
單次數,並希望抓住這串之後的一切,你可以這樣做:
mystring = "1234>>5678"
after = mystring.split(">>")[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返回組的列表,如果有團體。您指示使用'('和')'分別啓動和終止的組。
你是什麼意思?我不應該問問做什麼最好的方法是什麼? – Man
它清楚地表明:「表單可以包含某些事件」,該句子告訴你1.「某些事件」,這意味着它們不必處於起始處,也可以用於複數形式,這意味着可以有多個2我在「1234」例子之前說「例如」,誰會認爲它總是會是1234?你是認真的嗎? – Man
我收回了我的評論。我的錯是沒有仔細閱讀。 downvote不是我的。 –