Python / regex -提取第n个和第n个字符之间的字符串

mdfafbf1  于 2022-12-14  发布在  Python
关注(0)|答案(2)|浏览(185)

我有多个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.这是我不想要的。

ds97pgxw

ds97pgxw1#

我同意其他人的回答/评论,Split函数更容易,但是如果你坚持使用正则表达式,你会在Python的正则表达式中使用\K操作符,它会丢弃左边的匹配部分。
因此,^(?:.*?\/){3}\K.*?(?=\/|$)将从每行的开头搜索三个斜杠,然后将其从匹配中丢弃,执行非贪婪匹配.*?以获得您想要的结果,然后执行lookahead以在斜杠或行尾处停止匹配(无论哪个先遇到)。lookahead将不包括在匹配中。
如果您一次扫描多个示例,请确保包含RE.M标志,以便^和$匹配行的开始/结束以及字符串的开始/结束。

oaxa6hgo

oaxa6hgo2#

在这种情况下,你甚至不需要正则表达式。只要简单地用斜杠分割字符串。并检查返回的块。例如。

>>> "https://www.happy.com/de/article/98238811/poppers".split('/')[3]
'de'
>>> "https://www.happy.com/de/article/98238811/poppers".split('/')[4]
'article'

相关问题