【发布时间】:2012-11-16 12:15:52
【问题描述】:
我需要一个正则表达式,它仅在字符串后面没有正斜杠 (/) 字符并且我想匹配整个字符串时才匹配。
例如下面的字符串应该匹配
/Raj/details/002-542545-1145457
但不是这个
/Raj/details/002-542545-1145457/show
我尝试使用Negative Lookahead 来实现this answer 指定的目标。
我的代码是这样的。
pattern = Pattern.compile("/.*/details/(?!.*/)");
matcher = pattern.matcher(text);
if(matcher.matches()) {
System.out.println("success");
} else {
System.out.println("failure");
}
它正在失败。但是如果我使用matcher.find() 那么它就成功了。
请帮助我理解为什么它不匹配以及实现此目的的正则表达式?
【问题讨论】:
-
问题很不清楚..你只想匹配那些不以 / 结尾的字符串,那么 y 是你的第二个示例无效
-
这与Perl无关,所以我把标签去掉了。