如何在Python中使用正则表达式检测特定的URL?

时间:2015-08-10 11:51:19

标签: python regex

我尝试编写正则表达式,以检查是否有楼层,电梯和URL中的级别数(知道级别的名称和级别可以更改)。

网址如下:

  

https://www.mywebsite.com/root/floor-a-1-45/
  https://www.mywebsite.com/root/floor-b-2-15/

我也开始编写此代码,但我不知道如何解决我的问题。

import re
def is_http_url(s):
    if re.match('https?://(?:www)?(?:[\w-]{2,255}(?:\.\w{2,6}){1,2})(?:/[\w&%?#-]{1,300})?',s):
        return True
    else:
        return False

print is_http_url("https://www.mywebsite.com/root/floor-a-1-50/")

提前致谢。

1 个答案:

答案 0 :(得分:0)

https?://(?:www)?(?:[\w.-]{2,255}(?:\.\w{2,6}){1,2})(?:/[\w&%?#-]{0,300})*

您需要调整正则表达式以接受超过1个/aasd组。请参阅演示。

https://regex101.com/r/fM9lY3/31

还要将您的正则表达式放在r中,以避免转义问题

re.match(r'https?://(?:www)?(?:[\w.-]{2,255}(?:\.\w{2,6}){1,2})(?:/[\w&%?#-]{0,300})*',s)