正则表达式在推文中有效提及

时间:2016-05-30 19:00:45

标签: java regex

我想要一个包含所有有效提及的正则表达式@ ...除了@ ...直接在RT之后。例如:

RT @steve:今天我有一个非常棒的日子@henrich @bulleye

=> [@henrich @bulleye]

编辑: 我坚持这样做(?!RT\\s+@\\w*:)@\\w+让我回来了 => [@steve @henrich @bulleye]

2 个答案:

答案 0 :(得分:1)

使用negative look-behind

(?<!RT )(@[^ ]*)

DEMO

答案 1 :(得分:1)

由于lookbehinds需要长度固定,通常在正则表达式中我们使用\K,但由于Java不支持它,您可以使用组解决方法:

RT\\s+@\\w+|(@\\w+)

这样,"RT @steve"将存储在组0中,但不会存储在组1中。虽然有效的提及也会在组1中找到。