如果这是我的字符串。
"Mrs Miller IDN: 29.23 FT/GHI. 35.3 degree C wants the entire house repainted."
如何捕捉29.23
之后显示的文字IDN:
,而忽略其余文字。
我尝试了很多gsub函数,结果不是很好。
答案 0 :(得分:2)
你从来没有告诉我们你尝试了什么以及它出了什么问题,但除此之外你的问题已得到充分说明。我的猜测是你在gsub()
的电话中使用了错误的模式。
str <- "Mrs Miller IDN: 29.23 FT/GHI. 35.3 degree C wants the entire house repainted."
gsub(".*IDN: ([^[:space:]]*?)\\s.*", "\\1", str)
[1] "29.23"
答案 1 :(得分:1)
使用sub()
和strplit
...
string <- "Mrs Miller IDN: 29.23 FT/GHI. 35.3 degree C wants the entire house repainted."
string <- sub(" .*", "", sapply(strsplit(string, "IDN: "), "[", 2))
答案 2 :(得分:0)
d.b。回答...
但是,我不确定在提供两种基本解决方案时加载额外的包是否有意义。
library(stringi); unlist(stri_extract_all_regex(unlist(strsplit("Mrs Miller IDN: 29.23 FT/GHI. 35.3 degree C wants the entire house repainted.", "IDN:"))[2],"[0-9\\.]+"))[1]
snoram回答perl
strtrim(gsub("([0-9]+.[0-9]+)|\\C", "\\1", str, perl = TRUE), 5)
答案 3 :(得分:0)
word
stringr
功能
library(stringr)
word(word(x, 2, sep = 'IDN: '), 1)
#[1] "29.23"