Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-使用re.compile标识文本文件的正确行_Python_Regex_Text_Jupyter Notebook_Data Science - Fatal编程技术网

Python-使用re.compile标识文本文件的正确行

Python-使用re.compile标识文本文件的正确行,python,regex,text,jupyter-notebook,data-science,Python,Regex,Text,Jupyter Notebook,Data Science,各位 我对使用Python处理文本文件还不熟悉,我一直在寻找文本文件中的正确行。 查看图像,我需要找到一种方法,使块将包含单词“新数据包已接收””的行返回给我+存储在变量stcrouter\u行中的字符串。见图 仅使用变量返回3行,这是正确的。现在我只需要得到第二行,我相信我需要块的第一行上的正确表达式(line_regex=re.compile(stcruster_line))。 我不知道该怎么解释。有人能帮我吗?谢谢 尝试将代码修改为: line_regex = re.compile('Ne

各位

我对使用Python处理文本文件还不熟悉,我一直在寻找文本文件中的正确行。 查看图像,我需要找到一种方法,使块将包含单词“新数据包已接收””的行返回给我+存储在变量stcrouter\u行中的字符串。见图

仅使用变量返回3行,这是正确的。现在我只需要得到第二行,我相信我需要块的第一行上的正确表达式(line_regex=re.compile(stcruster_line))。 我不知道该怎么解释。有人能帮我吗?谢谢


尝试将代码修改为:

line_regex = re.compile('New packet was received' + r'.*?' + stcrouter_line)
这是为了匹配:

  • 收到新数据包
    按字面匹配文本
  • r.*?
    原始字符串,其中包含与任何 文本位于上面的文本字符串和现有模式之间。 在
    *
    之后使用
    使其成为最短匹配,以便 不会超出您现有的模式
  • stcruster\u line
    您现有的模式

试试
line\u regex=re.compile('收到新数据包'+r.*?'+stcruster\u line)
效果非常好。非常感谢,不仅为我提供了解决方案,还为我解释了它!太棒了!@Kennethdecster,你解决了它!还记得把它作为解决方案。