java - 匹配字符串而不是单词的正则表达式

标签 java regex import

我想通过搜索代码来查看我的 Java 项目中使用了哪些内部库

import com.mycompany.someproject.path.ClassName;

假设我的项目标题是“myproject”。什么正则表达式会匹配所有以

开头的行
import com.mycompany.

并排除:

myproject.path...

匹配的行将是:

import com.mycompany.tool.path.SomeClass;
import com.mycompany.sallysproject.path.SomeOtherClass;

并排除所有内部项目导入:

import com.mycompany.myproject.*

最佳答案

这应该有效:

import com\.mycompany\.(?!myproject\.).*

说明:

import com\.mycompany\. - 该行必须以 import com.mycompany. 开头。非常不言自明;请注意,我们需要转义句点 - \. - 以便它们实际上匹配句点,而不是“任何字符”。

(?!myproject\.) - 这称为“负向前瞻”。仅当括号内的模式(?! 除外)不匹配时,整体匹配才会成功。

.* - import com.mycompany. 之后的任何内容(myproject. 除外)都将被匹配。

关于java - 匹配字符串而不是单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4947087/

相关文章:

java - 无效的可绘制标签 vector - appcompat-v7 :24. 1.1

Java txt解析器换行问题

php - .htaccess 文件/隐藏子目录

regex - 带有 BRE '.' 的 sed(在 osx Snow Leopard 上)不匹配字符 > ascii 127

C# ListBox 从文本文件导入时崩溃

java - 保存实体后,Hibernate 为使用@Formula 注释的实体属性返回 null

java - Java 示例在 Mac OSX 上的位置

java - 使用 Pattern.LITERAL 是否与 Pattern.quote 相同?

python程序无法在cmd中运行

java - ANTLRworks 中的 TestRig : how to use own classes?