如何为网站url模式设置正则表达式

时间:2016-05-25 12:37:57

标签: python regex

网址格式

http://www.hepsiburada.com/philips-40pfk5500-40-102-ekran-full-hd-200-hz-uydu-alicili-cift-cekirdek-smart-android-led-tv-p-EVPHI40PFK5500

本网站有类似的网址。此网址的唯一标识符为-p-。 网址模式之前的网址始终为-p-

我使用了以下正则表达式

(.*)hepsiburada\.com\/([\w.-]+)([\-p\-\w+])\Z

它匹配,但它匹配本网站上的许多模式。

例如,正则表达式应匹配上面的url,但它不应与

匹配
http://www.hepsiburada.com/bilgisayarlar-c-2147483646

1 个答案:

答案 0 :(得分:2)

由于您使用的是re.match,因此您需要从头开始匹配字符串。但是,主要问题是您的-p-位于字符类中,因此被视为可以匹配的单独符号。与\w+相同 - 它分别被视为\w+

所以,使用序列

 (.*)hepsiburada\.com/([\w.-]+)(-p-\w+)$

请参阅this regex demo

或者

^https?://(?:www\.)?hepsiburada\.com/([\w.-]+)(-p-\w+)$

请参阅regex demo

请注意,很可能您甚至不需要捕获组,并且可以从模式中删除(...)个括号。