Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Java中解析哈希标记的正则表达式_Java_Regex_Twitter - Fatal编程技术网

Java中解析哈希标记的正则表达式

Java中解析哈希标记的正则表达式,java,regex,twitter,Java,Regex,Twitter,以下是我试图解析的Twitter消息(如您所见,其中一些不是标签,只是URL的一部分): 这不是很讽刺吗,我一发布这篇文章就找到了答案。因此,如果您正在寻找一种匹配的模式来实现这一点,那么以下方法似乎是可行的: (?:\s |\A)[##]+([A-Za-z0-9-#]+) 我将对此进行更多的测试,以查看是否有任何超出此表达式范围的边缘情况,如果发现任何边缘情况,我将向您报告。我认为 (\s|\A)#(\w+) 同样有效,更精确一点。 顺便说一句,在使用Java正则表达式时,我总是使用它来测试

以下是我试图解析的Twitter消息(如您所见,其中一些不是标签,只是URL的一部分):


这不是很讽刺吗,我一发布这篇文章就找到了答案。因此,如果您正在寻找一种匹配的模式来实现这一点,那么以下方法似乎是可行的:

(?:\s |\A)[##]+([A-Za-z0-9-#]+)

我将对此进行更多的测试,以查看是否有任何超出此表达式范围的边缘情况,如果发现任何边缘情况,我将向您报告。

我认为

(\s|\A)#(\w+)
同样有效,更精确一点。 顺便说一句,在使用Java正则表达式时,我总是使用它来测试我的表达式。比Java测试快得多


--哈代

@Daniel Dura:[##]这应该是毫无意义的。括号[]用于表示字符类。[##]与[#]相同。[##]+和[#]+一样。

那么你到底想得到什么呢?你能提供预期的结果吗?对不起,我应该说得更清楚。我正在尝试进行匹配,以查找给定tweet中的所有标记。我希望上面的推文会返回“另一个标签”、“失败”和“设计”。你试过这个吗?regex arcain提供的代码基于Twitter的代码,如果我阅读正确,它可以确保消息不会以标签开头。如果要禁用,可以删除第一个括号中的组。应该提到的是,我还没有亲自测试过这个正则表达式:)这里有一个更好的答案:(?:\s |\a |^)[##]+([a-Za-z0-9-|]+)在推特的一开始也接受一个标签
[##]+([A-Za-z0-9-_]+)
(\s|\A)#(\w+)