2014-04-16 115 views
2

请原谅我,如果这是一个非常简单的问题。自从我编写正则表达式以来已经有一段时间了。最值得赞赏的是你们帮助刷过铁锈。我在Python中使用正则表达式正则表达式匹配除“/”以外的所有内容

我想通过一些URL解析。下面是我解析URL的典型格式:

https://www.anysite.com/word/123456789/description-of-the-page 
https://www.anysite.com/word/123456789/description-of-the-page/someword 
https://www.anysite.com/word/123456789/description-of-the-page/thisword 
https://www.anysite.com/word/123456789/description-of-the-page/anyword 

我想编写将只匹配第一个网址,而不是过去三年的表现。也就是说,我想要一个正则表达式,只有在数字字符串“123456789”后面的“/”之后没有“/”时才会匹配。

忽略主URL,我已经尝试了负前向断言没有成功:

/word\/.+?\/(?!\/).+/ 

这符合所有四个例子。

因为我没有这些单词的完整列表,所以我不能具体说明不在“/ someword”“/ thisword”或“/ anyword”结尾。

再次感谢您的期待和您的想法!

+0

'[^ \ /] *'应该这样做。不要忘记使用dotall参数。 –

+0

这变得很接近。它在最后一个“/”之前得到了一切。我需要它不匹配,如果有一个“/” – user1500158

+0

你有没有考虑过在使用正则表达式解析之前通过'urlparse'运行你的URL?你会为自己节省一些头痛。 – roippi

回答

1

你能做到这一点的:

^https?:\/\/[^\d]*(\d+)\/[^\/]*$

演示:http://regex101.com/r/aC8aJ7

+0

非常有帮助!我结束了:\/projects \/[^ \ /] * \/[^ \ /] * $我需要进行此更改,因为可能在我写入123456789的地方也可能有字母字符。但是对于上面的例子,你很清楚!非常感谢! – user1500158

+0

我会在3分钟内让系统允许我 – user1500158

+0

谢谢@ sshashank124! – user1500158

0

如何:

/word\/[^\/]+\/[^\/]+/ 
相关问题