`re.search`没有给出完整的匹配(Python)

时间:2017-06-06 11:08:51

标签: python

以下是我文件的一行" test.txt":

"","links":{"self":"https://1.1.1.10/abc/abc_config/v1/domain/1234-e0f2-11e3-8169-dfgd1234/devices/devicerecords/71a54444-442e-11e7-b2e0-ef8622226aec"},"name":"10.105.206.87"},{"id":"118e8d36-49ba-11e7-8c4e-fb1fe31bd90c","type":"

我想从以下行中获取("name":"10.105.206.87"},{"id":"118e8d36-49ba-11e7-8c4e-fb1fe31bd90c","type")部分是我的代码 -

 f=open("test.txt","r")
 str1=f.read()
 str2=str1.split("Device")
 for string in str2:
    if "name" in string:
       reg='\"name.+,\"typ'
       match=re.search(reg,string)
       print (match)

它匹配预期输出的一半:

<_sre.SRE_Match object; span=(164, 237), match='"name":"10.105.206.87"},{"id":"118e8d36-49ba-11e7>

我想打印整个字符串:

 "name":"10.105.206.87"},{"id":"118e8d36-49ba-11e7-8c4e-fb1fe31bd90c","type"

如果我传递错误的正则表达式,请告诉我。

1 个答案:

答案 0 :(得分:0)

模式是正确的。您正在尝试打印re.search的结果。尝试仅拉出匹配的文字,如下所示。

 reg='\"name.+,\"type\"'
 match=re.search(reg,string)
 print (match.group())

顺便说一句,我已经修改了一些模式以匹配"type"