Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 Regex函数,用于遍历文件中的每一行,并提取具有特定单词的整行_Python_Regex - Fatal编程技术网

Python Regex函数,用于遍历文件中的每一行,并提取具有特定单词的整行

Python Regex函数,用于遍历文件中的每一行,并提取具有特定单词的整行,python,regex,Python,Regex,我正在用python编写一个正则表达式代码,以搜索文件中的每一行正则表达式模式,并提取所需的模式文件中的几行如下所示 利兹·科普兰 2018年4月1日星期一 没有。留歌()听了评论 我想从文件中提取标题和标题 -每个标题的行中都有Liz Copeland,行尾有5个选项卡,输出应如下所示 利兹·科普兰 -每个标题都有一个制表符,后跟5个制表符分隔的列标题,输出如下 没有。留歌()听了评论 我已经编写了一个函数来提取正则表达式行 title=re.compile(r'([^.?!]*[.?\s

我正在用python编写一个正则表达式代码,以搜索文件中的每一行正则表达式模式,并提取所需的模式文件中的几行如下所示

利兹·科普兰
2018年4月1日星期一 没有。留歌()听了评论

我想从文件中提取标题和标题 -每个标题的行中都有Liz Copeland,行尾有5个选项卡,输出应如下所示

利兹·科普兰
-每个标题都有一个制表符,后跟5个制表符分隔的列标题,输出如下

没有。留歌()听了评论

我已经编写了一个函数来提取正则表达式行

title=re.compile(r'([^.?!]*[.?\s!]Liz Copeland[^.?!]*[.?\s!])\t')
header=re.compile(r'\t\w+。\t.+)
打开(文件)为f时:
对于f中的行:
m_show=重新匹配(标题、行)
m_页眉=重新匹配(页眉,行)
上面的代码并不是用匹配的模式提取所有的行,而是给了我不想要的结果


请帮我查一下密码。提前感谢

使用以下正则表达式如何:

.*?Liz Copeland.+?\(\d{1,2}[ap]m-\d{1,2}[ap]m\)\s+$
演示:


它将Liz Copeland所在的整行与结尾空格相匹配

要获得标题,您可以在单词边界之间匹配名称
Liz Copeland
,并在字符串末尾匹配5个制表符:

.*?\bLiz Copeland\b.*\t{5}

要匹配标题,可以使用:

\tNo\.\tArtist\tSong\tAlbum \(Label\)\tComment\b


并不是说最后一行“购买44661劳伦特·加尼尔”这个红脸男人像示例数据中的前几行一样漏掉了括号中的内容。

你可以尝试一些类似Regex的方法来完美地获得标题。标题的正则表达式应该只匹配“No.Artister Song Album(Label)Comment”,它匹配其他行too@anonymous13您可以这样匹配它,我已经更新了答案。我尝试了\t\w+。\t\w+\t\w+\t\w+\s(\w+)\t\w+$作为标题行,效果很好。谢谢匿名13:你能把答案标为正确并投赞成票吗?非常感谢。