Regex 如何从每行中提取一些特定的单词?

Regex 如何从每行中提取一些特定的单词?,regex,linux,awk,sed,grep,Regex,Linux,Awk,Sed,Grep,文本文件有很多这样的行,我想提取/videos之后的单词,直到.mp4和最后一个数字(以粗体显示),并将每个过滤行输出到单独的文件中 https://videos-a.jwpsrv.com/content/conversions/7kHOkkQa/videos/**S4KWZTyt-32313922.mp4**.m3u8?hdnts=exp=1592315851~acl=*/S4KWZTyt-32313922.mp4.m3u8~hmac=83f4674e6bf2576b070c716a3196c

文本文件有很多这样的行,我想提取/videos之后的单词,直到.mp4和最后一个数字(以粗体显示),并将每个过滤行输出到单独的文件中

https://videos-a.jwpsrv.com/content/conversions/7kHOkkQa/videos/**S4KWZTyt-32313922.mp4**.m3u8?hdnts=exp=1592315851~acl=*/S4KWZTyt-32313922.mp4.m3u8~hmac=83f4674e6bf2576b070c716a3196cb6a30f35737827ee69c8cf7e0c57a196e51 **1** 
例如,假设文本文件内容为

输出应该是


您可以尝试以下正则表达式:

.*\/videos\/(.*?mp4).*?(?<= )(\d+)

您可以在

中找到上述命令的示例实现。您可以尝试以下正则表达式:

.*\/videos\/(.*?mp4).*?(?<= )(\d+)

您可以在

中找到上述命令的示例实现,建议的正则表达式可能是一个更好的解决方案,但我将留下一个Python解决方案,将每个过滤行写入一个单独的文件中。如果文件中的每一行都是这样,则该脚本可以工作

with open("my_file.txt","r") as FILE:
    lines=FILE.readlines()
    for line in lines:
        num=line.split(" ")[1]
        newline=line.split("videos")[2]
        newline=newline[1:]
        new=newline.split(".")[0:2]
        with open(new[0],"w") as f:
            f.write(new[0]+"."+new[1]+" "+num.strip())
            f.close

建议的正则表达式可能是一个更好的解决方案,但我将留下一个Python解决方案,将每个过滤行写入一个单独的文件中。如果文件中的每一行都是这样,则该脚本可以工作

with open("my_file.txt","r") as FILE:
    lines=FILE.readlines()
    for line in lines:
        num=line.split(" ")[1]
        newline=line.split("videos")[2]
        newline=newline[1:]
        new=newline.split(".")[0:2]
        with open(new[0],"w") as f:
            f.write(new[0]+"."+new[1]+" "+num.strip())
            f.close

我建议不要使用正则表达式,而是使用您选择的语言将URL解析为它们的组件。我建议不要使用正则表达式,而是使用您选择的语言将URL解析为它们的组件。
with open("my_file.txt","r") as FILE:
    lines=FILE.readlines()
    for line in lines:
        num=line.split(" ")[1]
        newline=line.split("videos")[2]
        newline=newline[1:]
        new=newline.split(".")[0:2]
        with open(new[0],"w") as f:
            f.write(new[0]+"."+new[1]+" "+num.strip())
            f.close