java - 特定字符串的正则表达式反向匹配?

标签 java regex regex-negation

我要匹配以下内容

  • com.my.company.moduleA.MyClassName
  • com.my.company.moduleB.MyClassName
  • com.my.company.anythingElse.MyClassName

不是以下

  • com.my.company.核心.MyClassName

我当前的简单正则表达式模式是:

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 中实现这一点的想法?

谢谢!

最佳答案

您可以使用以下正则表达式:

^com\\.my\\.company\\.(?!core).+?\\.MyClassName$

关于java - 特定字符串的正则表达式反向匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263923/

相关文章:

用于选择以 'ing' 结尾的单词的正则表达式,除非

Java 套接字文件传输 - 文件传输不完全

javascript - 如何替换数组中的字符串

php - 使用一个正则表达式在多行注释中查找单词

regex - Grep 排除 curl 主体的注释 <!-- --> 之间的匹配出现次数

java - java字符串连接空值并检索空值

java - 正则表达式仅阻止数字或空格,但允许数字和空格作为输入

java - 如何在 java 中使用 AT 命令将短信发送到 CDMA 调制解调器?

java - 没有这样的定义异常 : Spring Famework 4 , Apache tiles 3 和 Tomcat 8

java - 从文本文件中读取数据并求和