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