Мы можем попробовать сопоставить, используя шаблон (?<=\\s|^)#\\S+
, который будет соответствовать любому слову, начинающемуся с #
, за которым следует любое количество непробельных символов.
String line = "Here is a #hashtag and here is #another has tag.";
String pattern = "(?<=\\s|^)#\\S+";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
while (m.find()) {
System.out.println(m.group(0));
}
#hashtag
#another
Демо
Примечание. Приведенное выше решение может дать вам исключительный случай пунктуации, которая появляется в конце хэштега. Если вы этого не хотите, то мы можем перефразировать регулярное выражение, чтобы оно совпадало только с определенными положительными символами, например, буквы и цифры. Но, может быть, это не беспокоит вас.