在本文中:
"IPAddress":"10.0.0.18","PolicerID":"","IPAddress":"","PolicerID":""
我想要捕获所有ips,在此示例中为10.0.0.18和emptystring
我试图使用这个正则表达式:
(小于=" ip地址":&#34)(?*)(?=&#34)
返回10.0.0.18和", 它花了第一个"来自PolicerID而不是最后一个"在IPAddress中。
你能帮帮我吗? 感谢答案 0 :(得分:2)
您可以保持简单并只使用捕获组:
>>> str = r'"IPAddress":"10.0.0.18","PolicerID":"","IPAddress":"","PolicerID":""'
>>> print re.findall(r'"IPAddress":"([^"]*)', str)
['10.0.0.18', '']
>>>
但是如果你必须使用lookbehind断言,那么使用这个正则表达式:
(?<="IPAddress":")([^"]*)
([^"]*)
是一个否定模式,可以匹配任何不是双引号的字符中的0个或更多。
答案 1 :(得分:0)
如果您想要该文本中的所有IP,我会建议使用此正则表达式
[0-9]+(?:\.[0-9]+){3}