python - 在python中获取搜索值上方的行

标签 python regex sed multiline

我有一个文本文件,我想搜索一个特定的ip地址,文本文件的设置方式是主机名在ip add上面。即

real HOSTNAME

address xx.xx.xx.xx

当我只有要搜索的 IP 地址时,获取主机名的最佳/最简单方法是什么?常用表达? python 中是否有类似 sed 的实用程序具有保留空间?感谢您的帮助

最佳答案

正则表达式可能是最简单的解决方案。

>>> textdata = '''
someline
another line
real HOSTNAME

address 127.0.0.1
post 1
post 2
'''
>>> re.findall('^(.*)$\n^.*$\naddress 127.0.0.1', textdata, re.MULTILINE)
['real HOSTNAME']

您还可以使用 linecache module或者使用 f.readlines() 简单地将所有行读入列表。

关于python - 在python中获取搜索值上方的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8116395/

相关文章:

linux - SED 解析时间戳之间的 apache 日志

macos - 在 OSX 中使用 grep 和 sed 查找和替换

javascript - 正则表达式的客户端验证 - 允许中间有空格但不允许开头和结尾

sql - Oracle SQL - 编辑自由文本叙述中除最后四位数字之外的所有不同长度数字的多个出现

python项目导入uwsgi如何进行单元测试?

python - 动画 matplotlib 的 Poly3DCollection

java - Eclipse 中 Java 8 换行 RegEx 转义字符的问题

向文件添加标题的shell脚本

python - rabbitmq 队列中的多个消费者-只有一个消费者收到消息

python xarray 索引/切片非常慢