Regex 如何从每行中提取一些特定的单词?
文本文件有很多这样的行,我想提取/videos之后的单词,直到.mp4和最后一个数字(以粗体显示),并将每个过滤行输出到单独的文件中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
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