A B
paytm?r=498472&ck-source=wsas-asfdww 498472
paytm-clothing/r=498473&ck-source=wsas-sdfasd 498473
paytm-cloths&r=4984&ck-source=wsas-sdfd 4984
需要在?r =,/ r =或& r =之后返回数字 可以是四到六位数字,并遵循上述任何一种模式。
答案 0 :(得分:3)
我们可以使用str_extract
中的stringr
。我们匹配=
后面的数字模式并将其提取出来。
library(stringr)
as.numeric(str_extract(df1$A, "(?<=\\=)\\d+"))
#[1] 498472 498473 4984
如果需要具体(如帖子中所述),我们可以匹配?r=
/r=
或&r=
as.numeric(str_extract(df1$A, "(?<=(\\?|\\/|\\&)r\\=)\\d+"))
#[1] 498472 498473 4984
或者将sub
与捕获组一起使用。
as.numeric(sub('.*(\\?|\\/|\\&)r\\=(\\d+).*', '\\2', df1$A))
#[1] 498472 498473 4984