2010-04-07 115 views
0

我想匹配存儲在變量中的信息。我有他們旁邊的uuid和ip地址列表。我的代碼是:搜索變量的地址

r = re.compile(r'urn:uuid:5EEF382F-JSQ9-3c45-D5E0-K15X8M8K76') 

m = r.match(str(serv)) 
if m1: 
    print'Found' 

字符串SERV包含是:

urn:uuid:7FDS890A-KD9E-3h53-G7E8-BHJSD6789D:[u'http://10.10.10.20:12365/7FDS890A-KD9E-3h53-G7E8-BHJSD6789D/'] 
--------------------------------------------- 
urn:uuid:5EEF382F-JSQ9-3c45-D5E0-K15X8M8K76:[u'http://10.10.10.10:42365'] 
--------------------------------------------- 
urn:uuid:8DSGF89S-FS90-5c87-K3DF-SDFU890US9:[u'http://10.10.10.40:5234'] 
--------------------------------------------- 

所以基本上我想要找到uuid字符串,並找出它的地址,並將其存儲爲一個變量。到目前爲止,我只是試圖讓它匹配字符串無濟於事。任何人都可以指出一個解決方案。

感謝

回答

1

您正則表達式非常簡單,以至於沒有必要在所有使用正則表達式。

>>> serv=""" 
... urn:uuid:7FDS890A-KD9E-3h53-G7E8-BHJSD6789D:[u'http://10.10.10.20:12365/7FDS890A-KD9E-3h53-G7E8-BHJSD6789D/'] 
... --------------------------------------------- 
... urn:uuid:5EEF382F-JSQ9-3c45-D5E0-K15X8M8K76:[u'http://10.10.10.10:42365'] 
... --------------------------------------------- 
... urn:uuid:8DSGF89S-FS90-5c87-K3DF-SDFU890US9:[u'http://10.10.10.40:5234'] 
... --------------------------------------------- 
... """ 
>>> tomatch="urn:uuid:5EEF382F-JSQ9-3c45-D5E0-K15X8M8K76" 
>>> for row in serv.split("\n"): 
... if tomatch in row: 
... print row[ row.find("[")+1 : ].replace("]","") 
... 
u'http://10.10.10.10:42365' 
+0

@ghostdog - 感謝您的迴應 - 我嘗試過,但沒有找到任何東西。它找不到匹配項。它發生在Marcelo的回答中,這很奇怪。你能想到這是爲什麼嗎?它可以用變量的創建方式嗎?謝謝 – chrissygormley 2010-04-07 12:26:10

+0

嘗試我與口譯員一起做的方式。 – ghostdog74 2010-04-07 13:06:36

+0

@ghostdog - 變量未被正確輸出爲字符串。但是你的回答有一些我覺得有用的代碼,不需要正則表達式。謝謝 – chrissygormley 2010-04-07 13:12:35

2
r = re.compile(r"urn:uuid:5EEF382F-JSQ9-3c45-D5E0-K15X8M8K76:\[u'(.*)'\]") 
m = r.search(str(serv)) 
if m: 
    print 'Found', m.group(1) 
+0

@Marcelo Cantos - 謝謝你的迴應 - 我試過這個,但是沒有找到任何東西。它找不到匹配項。它發生在ghostdog的回答中,這很奇怪。你能想到這是爲什麼嗎?它可以用變量的創建方式嗎?謝謝 – chrissygormley 2010-04-07 12:26:43

+0

'serv'的類型是什麼? – 2010-04-07 12:33:05