2014-10-03 41 views
-1

你好:)Python中找到的消息隊列ID,像EC999DLLK5

我需要在網上找到一組的10個字符像'EC999DLLK5'。行看起來像:

Oct 2 03:29:46 server postfix/qmgr[2901]: EC999DLLK5: from=<mail_address>, size=876, nrcpt=1 (queue active) 

我該如何指定一個模式,如EC999DLLK5

我的意思是,行包含隨機順序的11個隨機字符。 因此,它可以是:

CCB29415C7 
E3043414F0 
E75D54127C 
013F140FE3 

+0

你嘗試過什麼嗎? – vaultah 2014-10-03 13:59:15

+1

你能給我們更多的線條嗎? – 2014-10-03 14:00:30

+0

你是什麼意思*「就像'EC999DLLK5''」*?總是十個字符?數字和大寫字母的相同模式?始終以例如''EC9''?你是什​​麼意思*「找」*?你需要索引,還是隻需要匹配的「單詞」?你應該看看正則表達式:https://docs.python.org/2/howto/regex.html – jonrsharpe 2014-10-03 14:02:05

回答

0

我做了什麼模式,你正在尋找一個假設。下面的正則表達式尋找模式:2個大寫字母,3個數字,4個大寫字母,1個數字。

import re 

s = 'Oct 2 03:29:46 server postfix/qmgr[2901]: EC999DLLK5: from=<mail_address>, size=876, nrcpt=1' 

re.findall('[A-Z]{2}[0-9]{3}[A-Z]{4}[0-9]', s) 

輸出

['EC999DLLK5'] 

如果這不是你正在尋找的模式,請舉些例子或一個更好的描述。