/utils/add/message - не могу сделать RegExp

257
11 февраля 2017, 06:48

Подскажите пожалуйста как составить regexp для такой строки /utils/add/message? таких /действие может быть сколько угодно.

Такое приходит в контроллер и мне нужно разобрать какие действия делать, куда перенаправлять.

Спасибо.

Answer 1

Если уж очень не хочется делать через .split("/")

public static void main(String[] args) {
    String checkString = "/aaa/bbb/ccc//abc/bcd/erf/ /";
    List<String> commands = new ArrayList<>();
    if (checkString.startsWith("/") && checkString.endsWith("/")){
        String pattern = "/[A-Za-z]+";
        Matcher m = Pattern.compile(pattern).matcher(checkString);
        while (m.find()){
            String cmd = m.group();
            commands.add(cmd.substring(1,cmd.length()));
        }
    }
    commands.forEach(System.out::println);
}

Однако так куда проще:

public static void main(String[] args) {
    String checkString = "/aaa/bbb/ccc//abc/bcd/erf/ /";
    if (checkString.startsWith("/") && checkString.endsWith("/")) {
        List<String> commands = new ArrayList<>();
        String[] cmds = checkString.split("/");
        for (String s : cmds)
            if (s.length() != 0)
                commands.add(s);
        commands.forEach(System.out::println);
    }
}
READ ALSO
Проверка существования ключа в Map

Проверка существования ключа в Map

Необходимо в HashMap сохранить "ключ -> массив значений"

357
android:Взаимодействие Service и UI

android:Взаимодействие Service и UI

Подскажите наиболее простую, надежную и наиболее "синхронную" схему взаимодействия Компонента с GUI и ServiceВ ИНЕТЕ описано много схем, но, как...

308
Исполняемые файлы Java

Исполняемые файлы Java

Вопрос такой, если создатьjar или

373