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