【问题标题】:R: Regular Expression for Twitter hashtags? [duplicate]R:推特标签的正则表达式? [复制]
【发布时间】:2018-04-14 12:16:36
【问题描述】:

我正在尝试提出一个与 Twitter 主题标签匹配的正则表达式。 Twitter 主题标签具有以下规则:

1)它们不能包含空格,

2)它们不能包含标点符号

3) 它们不能以数字开头或仅使用数字。

这是我到目前为止提出的,但它仍然存在空格和标点字符的问题:

"#{1}[^0-9]*[^[::punct::]\\s]*?[A-z0-9]*?"

在这方面的任何帮助将不胜感激。谢谢!

【问题讨论】:

标签: r regex


【解决方案1】:

你的正则表达式看起来有点复杂,你只需要匹配#,然后是一个字母,然后是字母数字字符。

您也不需要单个字符的量词。这应该有效:

#[a-zA-Z]\w*

如果您不允许使用下划线(它们是推文中的合法字符),请改用:

#[a-zA-Z][\da-zA-Z]*

看起来标签的真正规范是,下划线和数字在任何地方都有效,只要它们至少是一个字母。

所以这样会更好:

#\w*[a-zA-Z]\w*

【讨论】:

  • 下划线的意义何在?
  • 它是标签的有效字符。它也是\w 的一部分。
  • 我的错,好像也不能排在第一位,已删除
  • 您允许使用“/”之类的标点符号
  • 我在这里试过regex101.com 并没有找到匹配该字符的方法。我该怎么做?
【解决方案2】:

此正则表达式仅捕获有效的主题标签:

(#[a-zA-Z]+[\w]?)(?:\s|$)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 2023-03-24
    • 2013-01-07
    • 2014-06-16
    相关资源
    最近更新 更多