Java 正则表达式:否定的 lookahead
2022-09-01 05:56:26
我正在尝试制作两个与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
有人知道我做错了什么吗?我不一定需要使用消极的展望,我只需要解决问题,我认为消极的展望可能是做到这一点的一种方法。
谢谢