模式提取字符串

时间:2019-06-10 14:18:52

标签: python regex pandas

我有一系列的网址

www.domain.com/calendar.php?month=may.2019
www.domain.com/calendar.php?month=april.2019
www.domain.com/calendar.php?month=march.2019
www.domain.com/calendar.php?month=feb.2019
...
...
...
www.domain.com/calendar.php?month=feb.2007

我想年复一年地提取。

我在寻找什么

2019
2019
...
...
2007

并将它们保存到另一列

这就是我所拥有的:

data["urls"].str.extract('(?<=month=).*$')

2 个答案:

答案 0 :(得分:4)

修复您的代码

df["urls"].str.extract('(?<=month=).*\.(\d{4})$')

如果您可以确信所有功能都具有相同的模式,那么它们应该可以工作。

split

df["urls"].str.rsplit('.', 1).str[-1]

切片

df["urls"].str[-4:]

答案 1 :(得分:0)

在这里,我们还可以使用不带环视条件的简单表达式,例如:

.+month=.+\.([0-9]{4})

或:

month=.+\.([0-9]{4})

Demo 1

或:

.+month=.+\.(.+)

或:

month=.+\.(.+)

Demo 2