Python中URL的正则表达式

Python中URL的正则表达式,python,regex,Python,Regex,我有以下网址 content/test content/contact products/ products/96_product/ products/96_product/86000_productdescription1 products/96_product/86343_productdescription3 products/96_product/76002_productdescription4 products/96_product/100222_productdescription

我有以下网址

content/test
content/contact
products/
products/96_product/
products/96_product/86000_productdescription1
products/96_product/86343_productdescription3
products/96_product/76002_productdescription4
products/96_product/100222_productdescription5
products/100_product233/86303_productdescription1
products/100_product233/844543_productdescription3
products/100_product233/73442_productdescription4
products/100_product233/103434_productdescription5

我需要得到产品说明。数字可以是5或6位。如何构造正则表达式以获取列表中的产品描述?

您只需使用
str.split()
'
上进行拆分,然后执行最后一部分:

descriptions = []
for url in urls:
    parts = url.split("_")
    if len(parts) == 3:
        descriptions.append(parts[-1])
对于更复杂的情况,可以使用如下正则表达式:

import re
regex = re.compile(r"products/.*/\d{5,6}_(.*)")
descriptions = []
for url in urls:
    match = regex.match(url)
    if match:
        descriptions.append(match.group(1))
正则表达式

^.*\d{5,6}_([^\/])*$
解释
^
开始
*
任何东西
\d{5,6}
五位或六位数字
下划线
()
将其保存在结果中
[^\/]*
任何不是斜杠的东西
$
结束

python正则表达式引用 正则表达式pdf备忘单

您可以执行以下操作:

[re.search('product\/([0-9]{5,6})_productdescription', s).group(1) 
 if re.search('product\/([0-9]{5,6})_productdescription', s)
 else '' 
 for s in urls]
lmgtfy。。。