我想手艺两个正则表达式将匹配的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
。
任何人都知道我做错了吗? 我并不需要一定使用负前瞻,我只需要解决的问题,我认为排除模式可能是做这件事。
谢谢,