我很难想到使用R从字符串中删除部分的有效方法。 我有正在读入R的文本数据。数据是HTML格式,如下所示:
dummy <- c("Blah Blah 10pt margins blah blah 11pt blah format 23pt real answer34")
我试图只隔离那个&#34; 34&#34;但是,由于所有的&#34; 10pt&#34;我不能简单地拔出数字。和&#34; 11pt&#34;和&#34; 23pt&#34; HTML格式。
我想做的是,对于我找到文本&#34; pt,&#34;的每个实例。删除&#34; pt&#34;前面的两个字符。如果我这样做,我可以得到:
newDummy <- c("Blah Blah pt margins blah blah pt blah format pt real answer34")
然后我可以从字符串库中通过str_extract_all(newDummy,"\\(?[0-9,.]+\\)?")
得到34的答案。
问题在于我似乎无法有效地转动&#34;虚拟&#34;进入&#34; newDummy&#34; - 有没有人有一个整洁的解决方案?
谢谢!
答案 0 :(得分:2)
您可以使用:
dummy <- c("Blah Blah 10pt margins blah blah 11pt blah format 23pt real answer34")
library(stringi)
stri_extract_all_regex(dummy,'\\d+?\\d(?!pt)')[[1]]
#[1] "34"
或
library(stringr)
str_extract_all(dummy, "\\b\\d+\\b")[[1]]
#[1] "34"
dummy <- "10pt 11pt realanswer34"
stri_extract_all_regex(dummy,'\\d+?\\d(?!pt)')[[1]]
#[1] "34"
或使用str_extract_all
str_extract_all(dummy,perl('\\d+?\\d(?!pt)'))[[1]]
#[1] "34"