Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在r中不包含此字符的字符前/后提取字符串_R_Stringr - Fatal编程技术网

在r中不包含此字符的字符前/后提取字符串

在r中不包含此字符的字符前/后提取字符串,r,stringr,R,Stringr,我有这样一个字符串: strings <- c("100% 16 Feedback Kakkanad, Ernakulam","98% 159 Feedback Greater Kailash Part 1, Delhi","Bannerghatta Road, Bangalore ₹250 Available on Su") 上面的函数返回向量: "% 16 ", "% 159 ",&

我有这样一个字符串:

strings <- c("100% 16 Feedback Kakkanad, Ernakulam","98% 159 Feedback Greater Kailash Part 1, Delhi","Bannerghatta Road, Bangalore ₹250 Available on Su")

上面的函数返回向量:

"% 16 ", "% 159 ",""

我只想提取这个数字,所以删除%和空格。我试图搜索,但我不知道如何用更少的词来定义我的问题:(

我们可以使用带有正则表达式查找的
str\u extract
来提取任何零或多个空格(
\\s*
)后面的数字,然后是字符串“Feedback”

library(stringr)
as.numeric(c(str_extract_all(strings, "\\d+(?=\\s*Feedback)", simplify = TRUE)))
#[1]  16 159

匹配
%
的问题在于它也成为输出的一部分。相反,它可以是一个regex lookaround

as.numeric(str_extract_all(strings,"(?<=\\%\\s)[0-9]+", simplify = TRUE))
#[1]  16 159

as.numeric(str_extract_all(strings)”(?谢谢,快速回答!
as.numeric(str_extract_all(strings,"(?<=\\%\\s)[0-9]+", simplify = TRUE))
#[1]  16 159