Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:Twitter标签的正则表达式?_R_Regex - Fatal编程技术网

R:Twitter标签的正则表达式?

R:Twitter标签的正则表达式?,r,regex,R,Regex,我正试图找到一个与Twitter标签匹配的正则表达式。Twitter哈希标记具有以下规则: 1) 它们不能包含空格 2) 它们不能包含标点符号 3) 它们不能以数字开头或仅使用数字 这是我到目前为止提出的,但它仍然存在空格和标点符号的问题: "#{1}[^0-9]*[^[::punct::]\\s]*?[A-z0-9]*?" 非常感谢您的帮助。谢谢 您的正则表达式看起来有点复杂,您只需要匹配然后是字母,然后是字母数字字符 您也不需要为单个字符使用量词。这应该起作用: #[a-zA-Z]\w*

我正试图找到一个与Twitter标签匹配的正则表达式。Twitter哈希标记具有以下规则:

1) 它们不能包含空格

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

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

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

"#{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标签作为权威时)