我有多个url值,例如:
https://www.happy.com/de/article/98238811/poppers
https://www.happy.com/sr
https://www.happy.com/en/forum/ocean-liveliness
我想提取第三个和第四个斜杠之间的值(如果第四个斜杠存在)(例如:德、斯、恩)
在第四个和第五个斜线之间(例如:文章、论坛)
我在regex方面很糟糕,我试过这个[\/]*[^\/]+[\/]([^\/]+)
,但它似乎得到了所有的值,包括www.happy.这是我不想要的。
2条答案
按热度按时间ds97pgxw1#
我同意其他人的回答/评论,Split函数更容易,但是如果你坚持使用正则表达式,你会在Python的正则表达式中使用\K操作符,它会丢弃左边的匹配部分。
因此,
^(?:.*?\/){3}\K.*?(?=\/|$)
将从每行的开头搜索三个斜杠,然后将其从匹配中丢弃,执行非贪婪匹配.*?
以获得您想要的结果,然后执行lookahead以在斜杠或行尾处停止匹配(无论哪个先遇到)。lookahead将不包括在匹配中。如果您一次扫描多个示例,请确保包含RE.M标志,以便^和$匹配行的开始/结束以及字符串的开始/结束。
oaxa6hgo2#
在这种情况下,你甚至不需要正则表达式。只要简单地用斜杠分割字符串。并检查返回的块。例如。