我想与以下内容相匹配
但 不 以下
我目前的简单正则表达式是:
Pattern PATTERN_MODULE_NAME = Pattern.compile("com\\.my\\.company\\.(.*?)\\..*")
Matcher matcher = PATTERN_MODULE_NAME.matcher(className);
if (matcher.matches()) {
// will return the string inside the parentheses (.*?)
return matcher.group(1);
}
所以,基本上,我怎么能匹配其他所有内容,而不是特定的字符串,在我的情况下是字符串 core 。
请分享您对如何在Java中实现这一目标的想法?
谢谢!
答案 0 :(得分:6)
您可以使用以下正则表达式:
^com\\.my\\.company\\.(?!core).+?\\.MyClassName$
答案 1 :(得分:5)
也许正则表达式不是写这个的最清晰的方式。
if (className.startsWith("com.my.company.")
&& !className.startsWith("com.my.company.core.")) {
}
这很清楚它的作用,你可能会发现它更快。 ;)