Twitter 用户名的 R 中的正则表达式

Regular Expression in R for twitter username

我希望处理 @: 之间的文本,例如 space @rstat:。 我想形成一个正则表达式来处理这个问题。 我试过 ^@.[A-z0-9_].:$ 但它不起作用。

请帮帮我。

^@.[A-z0-9_].:$ 模式匹配字符串的开头 (^),然后是 @,然后是任何字符(.),然后是字母、数字、 _`[\]^,然后是任意字符,: 和结尾字符串($)。因此,它可以匹配 @§`‘: 字符串。

您可以像这样使用 stringr str_extract_all

str_extract_all(x, "(?<=@)[^\s:]+")

如果您必须检查 : 是否存在,请添加先行检查:

str_extract_all(x, "(?<=@)[^\s:]+(?=:)")
                                  ^^^^^

参见regex demo

详情

  • (?<=@) - 字符串中紧跟 @ 符号
  • 的位置
  • [^\s:]+ - 1 个或多个(由于 +)除空格和 :
  • 以外的字符
  • (?=:) - 正前瞻要求 : 紧邻当前位置的右侧。