В настоящее время у меня есть такой код
String[] departmentKeywords = trimmedArgs.split("\\s+");
У меня есть несколько отделов, например:
Младший менеджер
Средний менеджмент
Старший менеджмент
Топ-менеджмент
Как мне сделатьрегулярное выражение такое, что всякий раз, когда я набираю это:
junior middle
будет возвращать людей из младшего и среднего звена
management
ничего не будет возвращаться, так как я не хочу, чтобы он печатал моивесь менеджмент вышел.
junior top management
Вернет людей в Младший менеджмент и топ-менеджмент
Спасибо.
Редактировать 1: В настоящее время у меня есть что-то вроде этого:
public class FilterDepartmentCommandParser implements Parser<FilterDepartmentCommand> {
public FilterDepartmentCommand parse(String args) throws ParseException {
String trimmedArgs = args.trim();
trimmedArgs = trimmedArgs.replaceAll("(?i)management", "");
if (trimmedArgs.isEmpty()) {
throw new ParseException(
String.format(MESSAGE_INVALID_COMMAND_FORMAT, FilterDepartmentCommand.MESSAGE_USAGE));
}
String[] departmentKeywords = trimmedArgs.split("\\s+");
return new FilterDepartmentCommand(new DepartmentContainsKeywordsPredicate(Arrays.asList(departmentKeywords)));
}
}
В настоящее время это работает для всех 3 примеров, которые я перечислил выше.Тем не менее, это не работает, если я наберу слово «управление» 1-й, а затем ключевые слова.Например:
management top junior
Это должно вернуть мне людей из топ-менеджмента и младшего менеджмента.
Однако, это ничего не возвращает мне.Есть ли способ улучшить этот код?