2010-04-07 118 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