如何匹配此网址的正则表达式?

压缩

我有这个网址

http://download2142.mysite.com/d0kz4p5p3uog/api60w0g1o1jil1/upload.rar

“下载”之后的数字是随机生成的,“ mysite.com”之后的这两个目录会为每个文件获取随机字符串。

我试着(\.rar$)找到文件扩展名来下载文件,但是问题是该页面上还有其他链接,这些链接的URL以.rar文件结尾,而不是实际的下载链接。因此,按扩展名查找下载链接在这里无济于事。我需要如下所示的模式。

http://download\[random_no_here\].mysite.com/\[randomstring_number_included here/\[another_randomstring_with_number_included_here/the_actual_file_here_with_random_name.rar

2号环

此正则表达式将执行您想要的操作:

r'http://download\d+\.mysite\.com/\w+/\w+/upload\.rar'

\d匹配数字,\w匹配字母数字(包括下划线);+说匹配一个或多个前面的格局。我们\.com前面使用a .rar以便按.字面解释而不是其解释为正则表达式通配符。

测试

import re

p = re.compile(r'http://download\d+\.mysite\.com/\w+/\w+/upload\.rar')

table = [
    'http://download2142.mysite.com/d0kz4p5p3uog/api60w0g1o1jil1/upload.rar',
    'http://download2142.mysite.com/d0kz4p5p3uog/api60w0g1o1jil1/upload.raw',
    'http://download123.mysite.com/456/789/upload.rar',
    'http://downloadabc.mysite.com/def/ghi/upload.rar',
    'http://download1234.mysite.com/def/ghi/upload.rar',
    'http://download1234.mysite.org/def/ghi/upload.rar',
]

for s in table:
    m = p.match(s)
    print s, m is not None

输出

http://download2142.mysite.com/d0kz4p5p3uog/api60w0g1o1jil1/upload.rar True
http://download2142.mysite.com/d0kz4p5p3uog/api60w0g1o1jil1/upload.raw False
http://download123.mysite.com/456/789/upload.rar True
http://downloadabc.mysite.com/def/ghi/upload.rar False
http://download1234.mysite.com/def/ghi/upload.rar True
http://download1234.mysite.org/def/ghi/upload.rar False

如果实际文件名有所不同,则可以使用

r'http://download\d+\.mysite\.com/\w+/\w+/\w+\.rar'

或者

r'http://download\d+\.mysite\.com/\w+/\w+/[a-z]+\.rar'

如果名称始终是小写字母


顺便说一句,用regex解析HTML通常不是一个好主意,但是如果页面格式是固定的并且相当简单,则可以摆脱它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何匹配此网址的正则表达式?

来自分类Dev

正则表达式匹配网址

来自分类Dev

如何将网址与正则表达式匹配?

来自分类Dev

此正则表达式如何匹配成组

来自分类Dev

如何使用正则表达式匹配此模式

来自分类Dev

如何匹配正则表达式

来自分类Dev

如何匹配评论但不匹配网址?C#正则表达式

来自分类Dev

正则表达式以匹配网址格式

来自分类Dev

匹配基本网址正则表达式

来自分类Dev

网址匹配时的正则表达式差异

来自分类Dev

正则表达式以匹配网址中的空格

来自分类Dev

匹配CSS网址的正则表达式

来自分类Dev

javascript正则表达式匹配网址

来自分类Dev

Django中匹配网址的正则表达式

来自分类Dev

正则表达式的图片匹配网址

来自分类Dev

正则表达式以匹配网址中的多个单词

来自分类Dev

正则表达式右匹配网址,以DOT结尾

来自分类Dev

匹配基本网址正则表达式

来自分类Dev

正则表达式:匹配网址中间的字符

来自分类Dev

匹配网址正则表达式中的文件路径

来自分类Dev

正则表达式以匹配网址格式

来自分类Dev

如何仅将网址的主要部分与正则表达式匹配?

来自分类Dev

如何从正则表达式匹配中排除一些网址

来自分类Dev

如何修改正则表达式以匹配页面上的所有网址

来自分类Dev

为什么此正则表达式匹配真假?

来自分类Dev

为什么此正则表达式不匹配?

来自分类Dev

为什么此正则表达式不匹配?

来自分类Dev

正则表达式可以匹配此模式吗?

来自分类Dev

为什么此正则表达式匹配?