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

如何在Python中使用正则表达式检测特定URL?,python,regex,Python,Regex,我尝试编写一个正则表达式,以检查URL中是否有楼层、电梯和层数(知道名称和层数可以更改) URL如下所示: 我也开始写这段代码,但我不知道如何解决我的问题 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: re

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

URL如下所示:


我也开始写这段代码,但我不知道如何解决我的问题

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/")
提前谢谢

https?://(?:www)?(?:[\w.-]{2,255}(?:\.\w{2,6}){1,2})(?:/[\w&%?#-]{0,300})*
您需要调整您的正则表达式以接受1个以上的
/aasd
组。请参阅演示

同时将正则表达式放入
r
中,以避免逃避问题

re.match(r'https?://(?:www)?(?:[\w.-]{2,255}(?:\.\w{2,6}){1,2})(?:/[\w&%?#-]{0,300})*',s)
您需要调整您的正则表达式以接受1个以上的
/aasd
组。请参阅演示

同时将正则表达式放入
r
中,以避免逃避问题

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

r''
声明正则表达式模式。另外,也许这正是您需要的:?您是在任意文本中搜索URL,还是已经有URL并想要验证它?如果是这样,您可以简化任务,只需检查最后一个路径段,这将大大简化正则表达式(或者可能将任务分为两部分-识别URL和验证找到的URL)。我在任意文本中搜索URL,并尝试检查最后一个路径段。谢谢,我用
r''
检查此选项声明正则表达式模式。另外,也许这正是您需要的:?您是在任意文本中搜索URL,还是已经有URL并想要验证它?如果是这样,您可以简化任务,只检查最后一个路径段,这将大大简化正则表达式(或者可能将任务分为两部分-URL识别和找到的URL验证)。我在任意文本中搜索URL,并尝试检查最后一个路径段。谢谢,我选中此选项