Java регулярное выражение: отрицательный взгляд

Я пытаюсь создать два регулярных выражения, которые будут соответствовать URI. Эти URI имеют формат:/foo/someVariableData а также/foo/someVariableData/bar/someOtherVariableData

Мне нужны два регулярных выражения. Каждый должен соответствовать одному, но не другому.

Регулярные выражения, которые я изначально придумал: /foo/.+ а также/foo/.+/bar/.+ соответственно.

Я думаю, что второе регулярное выражение в порядке. Это будет соответствовать только второй строке. Первое регулярное выражение, однако, соответствует обоим. Итак, я начал играть (впервые) с негативным взглядом. Я разработал регулярное выражение/foo/.+(?!bar) и установите следующий код, чтобы проверить это

public static void main(String[] args) {
    String shouldWork = "/foo/abc123doremi";
    String shouldntWork = "/foo/abc123doremi/bar/def456fasola";
    String regex = "/foo/.+(?!bar)";
    System.out.println("ShouldWork: " + shouldWork.matches(regex));
    System.out.println("ShouldntWork: " + shouldntWork.matches(regex));
}

И, конечно же, они оба решаютtrue.

Кто-нибудь знает, что я делаю неправильно? Мне не обязательно обязательно использовать Negative lookahead, мне просто нужно решить проблему, и я думаю, что отрицательный взгляд может быть одним из способов сделать это.

Спасибо,

Ответы на вопрос(1)

Ваш ответ на вопрос