我的代码应该做的是接受用户输入的搜索词,然后遍历tcp转储文件,并按包查找该词的每个实例。 src IP充当我输出中每个数据包的标头。
所以我在遍历第一个术语时似乎删除了fileIn问题。因此,当程序查看第二个用户输入的搜索词时,显然找不到任何东西。这是我所拥有的:
import re
searchTerms = []
fileIn = open('ascii_dump.txt', 'r')
while True:
userTerm = input("Enter the search terms (End to stop): ")
if userTerm == 'End':
break
else:
searchTerms.append(userTerm)
ipPattern = re.compile(r'((?:\d{1,3}\.){3}\d{1,3})')
x = 0
while True:
print("Search Term is:", searchTerms[x])
for line in fileIn:
ipMatch = ipPattern.search(line)
userPattern = re.compile(searchTerms[x])
userMatch = userPattern.search(line)
if ipMatch is not None:
print(ipMatch.group())
if userMatch is not None:
print(userMatch.group())
x += 1
if x >= len(searchTerms):
break
最佳答案
您需要在for line in fileIn
循环之后“倒带”文件:
...
fileIn.seek(0);
x += 1
关于python - Python正则表达式:用户输入多个搜索词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26850392/