我有一个数据帧mydf:
Content term
1 Search Term: abc| NA
2 Search Term-xyz NA
3 Search Term-pqr| NA
制作正则表达式:
\Search Term[:]?.?([a-zA-Z]+)\
获取abc xyz和pqr等条款。
如何在术语列中提取这些术语。我尝试过str_match和gsub,但没有得到正确的结果。
答案 0 :(得分:2)
我们可以尝试sub
sub(".*(\\s+|-)", "", df1$Content)
#[1] "abc" "xyz" "pqr"
或者
library(stringr)
str_extract(df1$Content, "\\w+$")
#[1] "abc" "xyz" "pqr"
如果在最后的字符串中也找到了|
gsub(".*(\\s+|-)|[^a-z]+$", "", df1$Content)
#[1] "abc" "xyz" "pqr"
或
str_extract(df1$Content, "\\w+(?=(|[|])$)")
#[1] "abc" "xyz" "pqr"
答案 1 :(得分:1)
只是为了展示word
的{{1}}功能,
stringr
答案 2 :(得分:0)
'gsub'会帮助你
content <- c("Search Term: abc|", "Search Term-xyz", "Search Term-pqr|")
term <- c(NA, NA, NA)
test123 <- as.data.frame(cbind(content, term))
test123$term <- as.character(gsub(".*(\\s+|-)|[^a-z]+$", "", test123$content))
test123
content term
1 Search Term: abc| abc
2 Search Term-xyz xyz
3 Search Term-pqr| pqr