python - 如何使用 Python 查找列中的文本

标签 python parsing text split find

如果我在变量中包含以下文本,那么能够使用 "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

最佳答案

您可以使用正则表达式,在本例中 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'

关于python - 如何使用 Python 查找列中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398864/

相关文章:

java - 如何使用 Jolt 按两个键聚合 JSON 数据?

java - 子类中的自制方法显示语法错误

matlab - 读取文本文件并通过 Matlab 绘制它

python - 如何子类化 QMessageBox 并在 PySide 中添加进度条

python - 如何关闭 cv2 窗口?

python - Pandas 时间序列 : Keep only one value peer week and id

python - 使用 Tkinter Text 使用 Tab 键转到下一个字段(而不是缩进)

python - Django Rest Framework关系属性错误

parsing - 更改 time.Time 时区而不重新解析

c# - ItextSharp 在页面中心添加图像,并在其下方添加文本