Skip to content

Instantly share code, notes, and snippets.

@eutkin
Created July 27, 2018 09:09
Show Gist options
  • Save eutkin/3283c51a80778ae434c233c80f3be694 to your computer and use it in GitHub Desktop.
Save eutkin/3283c51a80778ae434c233c80f3be694 to your computer and use it in GitHub Desktop.
package com.company;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static java.util.Optional.empty;
import static java.util.Optional.of;
public class Main {
public static void main(String[] args) {
String message = "/save Тестовая #запись с хэштегом посередине фразы #тест #ага";
Optional<String> command = getCommand(message);
System.out.println("Команда: " + command.orElse("не найдена"));
System.out.println("Cообщение: " + command.map(c -> message.replace("/" + c, "").trim()).orElse(message));
System.out.println("Тэги: " + getTags(message));
}
static Optional<String> getCommand(String message) {
Pattern commandPattern = Pattern.compile("/(\\w+)");
Matcher commandMatcher = commandPattern.matcher(message);
if (commandMatcher.find()) {
return of(commandMatcher.group(1));
}
return empty();
}
static Set<String> getTags(String message) {
Set<String> tags = new HashSet<>();
Pattern regexp = Pattern.compile("#([A-zА-я_\\d]+)");
Matcher matcher = regexp.matcher(message);
while (matcher.find()) {
String tag = matcher.group(1);
tags.add(tag);
}
return tags;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment