R:Twitter标签的正则表达式?
我正试图找到一个与Twitter标签匹配的正则表达式。Twitter哈希标记具有以下规则: 1) 它们不能包含空格 2) 它们不能包含标点符号 3) 它们不能以数字开头或仅使用数字 这是我到目前为止提出的,但它仍然存在空格和标点符号的问题:R:Twitter标签的正则表达式?,r,regex,R,Regex,我正试图找到一个与Twitter标签匹配的正则表达式。Twitter哈希标记具有以下规则: 1) 它们不能包含空格 2) 它们不能包含标点符号 3) 它们不能以数字开头或仅使用数字 这是我到目前为止提出的,但它仍然存在空格和标点符号的问题: "#{1}[^0-9]*[^[::punct::]\\s]*?[A-z0-9]*?" 非常感谢您的帮助。谢谢 您的正则表达式看起来有点复杂,您只需要匹配然后是字母,然后是字母数字字符 您也不需要为单个字符使用量词。这应该起作用: #[a-zA-Z]\w*
"#{1}[^0-9]*[^[::punct::]\\s]*?[A-z0-9]*?"
非常感谢您的帮助。谢谢 您的正则表达式看起来有点复杂,您只需要匹配
然后是字母,然后是字母数字字符
您也不需要为单个字符使用量词。这应该起作用:
#[a-zA-Z]\w*
如果您不允许使用下划线(它们在tweet中是合法字符),请使用以下选项:
#[a-zA-Z][\da-zA-Z]*
看起来标签的真正规范是下划线和数字在任何地方都有效,只要它们至少是一个字母
所以这会更好:
#\w*[a-zA-Z]\w*
此正则表达式仅捕获有效的哈希标记:
(#[a-zA-Z]+[\w]?)(?:\s|$)
下划线的意义是什么?它是哈希标记的有效字符。它也是
\w
的一部分。糟糕,它看起来也不能在第一个位置,删除你允许像“/”这样的操作。我在这里尝试过,但没有找到匹配该字符的方法。我该怎么做?这很可能是最明确的答案:(当你接受Twitter标签作为权威时)