正则表达式提取除URL之外的文件路径

时间:2017-09-18 09:28:20

标签: python regex

我有一个包含一些文件路径的大文本,我需要一个可以帮我提取所有路径的正则表达式。目前我正在使用这个:

\/.+?\/[\w]+\.\w+

它的工作方式几乎完美,但最后包含文件名或点的链接也被解释为路径,如下所示:

http://example.com/index.html

非常感谢帮助提供有效的正则表达式。此外,如果您可以在此正则表达式的路径中添加空格支持,那将非常棒。提前谢谢!

指向正则表达式测试的链接:click

2 个答案:

答案 0 :(得分:1)

你可以尝试使用负面的后视来排除“http:”和“https:”前缀。

(?<!https:)(?<!http:)(?<!/)(?<!\w)((/[^\s]+)?/\w+\.\w+)

如果你在pythex中尝试使用这个测试字符串:

/abc/def/def.ps
/abc/def/ttt/def.ps
/test.txt
/abc/test.txt http://example.com/index.html
 http://www.google.com/bla/test/index.html https://www.google.com/bla/test/index.html

它只匹配前4个。

以下是pythex链接。

这个正则表达式的优点是不依赖于行的开头。

您可以添加任意数量的内容,以支持其他协议,如ftp等。

答案 1 :(得分:0)

尝试此操作:^\/.+?\/[\w]+\.\w+$启用多行模式。