如果我将下面的文本放在一个变量中,那么使用"NetName:"进行搜索并使"LVLT-GOGL-8-8-8"返回的最佳方法是什么?
NetRange: 8.8.8.0 - 8.8.8.255
CIDR: 8.8.8.0/24
NetName: LVLT-GOGL-8-8-8
NetHandle: NET-8-8-8-0-1
Parent: LVLT-ORG-8-8 (NET-8-0-0-0-1)
NetType: Reallocated
NetType: Reallocated
OriginAS:
Organization: Google Inc. (GOGL)
RegDate: 2014-03-14
Updated: 2014-03-14
Ref: http://whois.arin.net/rest/net/NET-8-8-8-0-1发布于 2015-04-01 19:25:29
您可以使用regex,在这种情况下,https://docs.python.org/2/library/re.html#re.search可以完成以下工作:
>>> s="""NetRange: 8.8.8.0 - 8.8.8.255
...
... CIDR: 8.8.8.0/24
...
... NetName: LVLT-GOGL-8-8-8
...
... NetHandle: NET-8-8-8-0-1
...
... Parent: LVLT-ORG-8-8 (NET-8-0-0-0-1)
...
... NetType: Reallocated
...
... NetType: Reallocated
...
... OriginAS:
...
... Organization: Google Inc. (GOGL)
...
... RegDate: 2014-03-14
...
... Updated: 2014-03-14
...
... Ref: http://whois.arin.net/rest/net/NET-8-8-8-0-1"""
>>> import re
>>> re.search(r'NetName:\s+(.*)',s).group(1)
'LVLT-GOGL-8-8-8'或者,您可以在拆分的字符串上循环并使用生成器表达式:
>>> next(line.split()[-1] for line in s.split('\n') if 'NetName:' in line)
'LVLT-GOGL-8-8-8'发布于 2015-04-01 19:52:08
#!/usr/bin/env python
import re
ff = """NetRange: 8.8.8.0 - 8.8.8.255
CIDR: 8.8.8.0/24
NetName: LVLT-GOGL-8-8-8
NetHandle: NET-8-8-8-0-1
Parent: LVLT-ORG-8-8 (NET-8-0-0-0-1)
NetType: Reallocated
NetType: Reallocated
OriginAS:
Organization: Google Inc. (GOGL)
RegDate: 2014-03-14
Updated: 2014-03-14
Ref: http://whois.arin.net/rest/net/NET-8-8-8-0-1"""
m = re.search("NetRange:(.*)\n", ff)
print m.groups() # or do
print m.group(1)https://stackoverflow.com/questions/29398864
复制相似问题