我想在stringr包中使用str_extract从XX nights etcetc形式的字符串中提取数字。

我目前正在这样做:

library(stringr)

str_extract("17 nights$5 Days", "(\\d)+ nights")


但这又回来了

"17 nights"

而不是17

如何只提取数字?我以为用括号指定提取组会起作用,但是没有用。

最佳答案

您可以使用前瞻性正则表达式(?=)

library(stringr)

str_extract("17 nights$5 Days", "(\\d)+(?= nights)")


(?<=)后面的外观也可以派上用场。

一个很好的参考是Rstudio网站的备忘单:https://github.com/rstudio/cheatsheets/raw/master/regex.pdf

08-20 00:35