在我所见过的所有线程中,我无法找到一个清晰的正则表达式模式来将所有给定的URL精确地修剪到其域根。许多解决方案都是通过使用某些PHP方法或其他方法来避免正则表达式,但是我在Python中,并且想使用一个简单的正则表达式。
这是我所拥有的:
http://([^/]+).*
但是,这不考虑具有以下内容的域之类的异常:
'http' or 'http://www.'
有人有处理所有这些疯狂例外的正则表达式吗?非常感谢!
编辑:这是一些示例输入:
http://toronto.kijiji.ca/f-cars-vehicles-cars-trucks-W0QQCatIdZ174
http://wwwa.autotrader.ca/cars/on/toronto/
http://toronto.en.craigslist.ca/cta/
http://www.auto123.com/en/used-cars/classified/ontario/toronto?city=toronto
https://www.123-reg.co.uk/email-hosting/
样本输出:
kijiji.ca
autotrader.ca
craigslist.ca
auto123.com
123-reg.co.uk
使用“简单的正则表达式”无法做到这一点。如果所有扩展都是单部分的,则为是(请参见下文),但无法通过模式与第二级域进行区分。例如,abc.co.uk
具有与相同的模式abc.uk.co
,但是在第一种情况下,您想要返回,abc.co.uk
而在第二种情况下,您想要返回uk.co
。您的职能需要对有效TLD和第二级域有所了解。
https?:\/\/(?:.*\.)*(.+\..+?)\/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句