我正在分析Twitter数据,并希望提取推文中的所有主题标签。我曾经像这样提取主题标签:
tweet = 'I like #apple #orange'
str_extract_all(tweet,"#\\S+")
这在大多数情况下都有效。但是有时两个标签彼此相邻。
tweet = 'I like #apple#orange'
str_extract_all(tweet,"#\\S+")
我得到的是这样的:
[[1]]
[1] "#apple#orange"
有谁知道当标签彼此分离或彼此相邻时,如何正确提取标签?
最佳答案
您正在使用\S
过度匹配,因为这将匹配非空格字符和#
。
您可以使用negated character类来匹配空白字符,也不能匹配#
#[^#\\s]+
您的代码可能看起来像
tweet = 'I like #apple#orange'
str_extract_all(tweet,"#[^#\\s]+")
结果
[[1]]
[1] "#apple" "#orange
R demo