在变量中搜索地址

时间:2010-04-07 11:05:30

标签: python regex

我正在尝试匹配存储在变量中的信息。我有一个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字符串并找出它的地址是什么并将其存储为变量。到目前为止,我只是试图让它匹配字符串无济于事。任何人都可以指出解决方案。

由于

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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'