Regex 提取从特定字符开始直到下一个空格的子字符串
我想从tweets中提取标签(twitter句柄)Regex 提取从特定字符开始直到下一个空格的子字符串,regex,r,Regex,R,我想从tweets中提取标签(twitter句柄) tweet <- "@me bla bla bla bla @2_him some text @me_" 我不知道哪个正则表达式会返回整个字符串(@tag) 谢谢 如果要匹配所有非空格,只需使用相应的正则表达式即可 regmatches(tweet, gregexpr("@[^ ]*", tweet))[[1]] # [1] "@me" "@2_him" "@me_" 如果要匹配所有非空格,只需使用相应的正则表达式即可 re
tweet <- "@me bla bla bla bla @2_him some text @me_"
我不知道哪个正则表达式会返回整个字符串(@tag)
谢谢 如果要匹配所有非空格,只需使用相应的正则表达式即可
regmatches(tweet, gregexpr("@[^ ]*", tweet))[[1]]
# [1] "@me" "@2_him" "@me_"
如果要匹配所有非空格,只需使用相应的正则表达式即可
regmatches(tweet, gregexpr("@[^ ]*", tweet))[[1]]
# [1] "@me" "@2_him" "@me_"
使用
\w*
代替[:alnum:]*
,因为
不在字母数字字符列表下(即,[:alnum:]
匹配字母数字[A-Za-z0-9]
字符),但它在单词字符列表下
使用
\w*
代替[:alnum:]*
,因为
不在字母数字字符列表下(即,[:alnum:]
匹配字母数字[A-Za-z0-9]
字符),但它在单词字符列表下
您可以使用以下命令<代码>\S将匹配任何非空白字符。此外,您还需要使用
+
量词而不是*
,否则,如果字符串中确实存在@
字符,则最终会自动匹配该字符
> regmatches(tweet, gregexpr("@\\S+", tweet))[[1]]
# [1] "@me" "@2_him" "@me_"
您可以使用以下命令<代码>\S将匹配任何非空白字符。此外,您还需要使用
+
量词而不是*
,否则,如果字符串中确实存在@
字符,则最终会自动匹配该字符
> regmatches(tweet, gregexpr("@\\S+", tweet))[[1]]
# [1] "@me" "@2_him" "@me_"
qdapRegex
软件包具有专门为此任务设计的功能rm_标签
:
library(qdapRegex)
rm_tag(tweet, extract=TRUE)
## [[1]]
## [1] "@me" "@2_him" "@me_"
qdapRegex
软件包具有专门为此任务设计的功能rm_标签
:
library(qdapRegex)
rm_tag(tweet, extract=TRUE)
## [[1]]
## [1] "@me" "@2_him" "@me_"