我知道论坛上有类似的话题,但是我的问题没有答案,我尝试了不同的方法(R regex - 提取以@符号开头的单词)。我需要写出所有前面没有符号的单词。
下面的代码删除了所有包含 #sign 和此操作结果的单词。
tweeter <- c("#tweeter tweet", "h#is", "tweet #tweeter2", "twet")
str_extract_all(tweeter, "(?<=\\B\\#)[^\\s]+")
Run Code Online (Sandbox Code Playgroud)
它的结果:
[[1]]
[1] "tweeter"
[[2]]
character(0)
[[3]]
[1] "tweeter2"
[[4]]
character(0)
Run Code Online (Sandbox Code Playgroud)
现在他尝试显示所有开头没有 # 的单词的代码。
regmatches(tweeter, gregexpr("\\B#\\S+", tweeter), invert = T)
Run Code Online (Sandbox Code Playgroud)
我想显示不以#just 开头的单词列表,不知道如何正确书写。
这将为您提供不以以下字符开头的单词#
library(stringr)
tweeter[!str_detect(tweeter, "^#")]
# "h#is" "tweet #tweeter2" "twet"
Run Code Online (Sandbox Code Playgroud)
str_detect(tweeter, "^#")
pattern
在本例中返回基于 和 的逻辑向量^#
。^
匹配开头并#
指定开头要匹配的字符。
最后,要返回条件为的值,TRUE
我们使用tweeter[]
.
!
通过使用以下参数,可以在不使用which 否定逻辑值的negate
情况下实现相同的效果str_detect
:
tweeter[str_detect(tweeter, "^#", negate = TRUE)]
# "h#is" "tweet #tweeter2" "twet"
Run Code Online (Sandbox Code Playgroud)