所以我目前正在开发一个Web应用程序,它将其中一个函数的恶意软件文件的位置作为输入。
这是通过views文件传递的。但是,在对应用程序的模型部分进行一些更改之后,我发现它无法解析整个文件路径。
以下代码适用于以下pcap作为输入:
8cdddcd3-35fa-468d-8647-816518a9836a435be1c6e904836ad65f97f3eac4cbe19ee7ba0da48178fc7f00206270469165.pcap
url(r'^analyse/(?P<pcap>[\w\-]+\.pcap)$', views.analyse, name='analyse'),
但是,当它是包含完整文件路径的pcap时,此代码不再有效。
/home/freddie/malwarepcaps/8cdddcd3-35fa-468d-8647-816518a9836a435be1c6e904836ad65f97f3eac4cbe19ee7ba0da48178fc7f00206270469165.pcap
我将非常感谢有关如何更改正则表达式以容纳传递给路径的字符串中的完整文件路径的任何建议或指示。
答案 0 :(得分:2)
正则表达式:((/\w+?)+/)?([\w-]+\.pcap)
django正则表达式:^analyse(?P<pcap>((/\w+?)+/)?([\w-]+\.pcap))$
请注意analyse
后没有斜杠,因为它现在是pcap
的一部分。
因此analyse/home/freddie/malwarepcaps/foo-bar.pcap
应匹配此模式,pcap
将等于/home/freddie/malwarepcaps/foo-bar.pcap
试验:
PS:我认为将这样的参数(路径 - /home/f/m/f.pcap
)移动到查询字符串(用于GET请求)或移入http-body(用于POST请求)更好
所以没有url-matching