代码之家  ›  专栏  ›  技术社区  ›  Ravindra Nadh

twitter用户名的R正则表达式

  •  0
  • Ravindra Nadh  · 技术社区  · 8 年前

    @ : 例如,没有任何空间 @rstat:。 我试过了 ^@.[A-z0-9_]:$ 但它不起作用。

    请帮帮我。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Wiktor Stribiżew    8 年前

    这个 ^@.[A-z0-9_].:$ 模式匹配字符串的开头( ^ ),然后是 @ ,然后是任何字符(带 . ),然后是字母、数字, _ ` , [ , \ ] , ^ ,然后是任何字符 : $ ). 所以,它可以匹配,比如说 @§`‘: 一串

    str_extract_all 这样地

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

    如果你必须检查 状态,添加前瞻检查:

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

    请参阅 regex demo

    细节

    • (?<=@) -字符串中紧跟在前面的位置 @
    • [^\\s:]+ -1或更多(由于 + :
    • (?=:) : 立即位于当前位置的右侧。
    推荐文章