【发布时间】:2015-06-07 06:35:58
【问题描述】:
我有一个大文件,里面有一堆数据,但基本上我想做的是只抓取其中的一部分,让我解释一下我感兴趣的部分:
(将“x”想象为 IP 地址)
(将“?”想象为任何字母数字字符/w 任何长度)
(将“MD5”想象成一个 MD5 哈希)
(实际 - 不是字面意思 - 下面的文本文件)
'xxx.xxx.xxx.xxx' xxxxxxxxxx “?” “?” 'MD5'
现在我的查询是以下一个,我如何识别线路
'xxx.xxx.xxx.xxx'
在一个文件的开头任何地方,然后自动写入另一个文件中的'?'条目和找到的每个 IP 地址实例的“MD5”条目。
所以简而言之,程序应该从文件的开头开始,读取内容,如果它到达一个 IP 地址(Regex: '\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b' 对我来说很好),跳过下面的一行,然后开始复制其他数据到另一个文件,直到它到达 MD5 条目(Regex: '[a-f0-9]{32}' 对我来说很好),然后从那个点再次迭代,等等寻找另一个 IP 地址实例等等。它应该保持这样做直到到达文件的末尾。
我正在尝试自己做,但我什至不知道从哪里开始,也不知道做这件事的方法。
【问题讨论】:
-
x第二行没有点的那一行是什么? -
@Tomalak,一些身份证号码,不是相对重要的。
-
我不会使用正则表达式来读取文件。在以下网页上使用类似于我的代码的代码:stackoverflow.com/questions/30457660/…。您可以使用正则表达式来识别一行是否包含 IP,但不要在整个文件上使用正则表达式。请发布文件的实际部分,以便我提供帮助。从事文本解析已有 40 多年。