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

时间:2011-02-09 15:44:22

标签: 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.*

1 个答案:

答案 0 :(得分:3)

这应该有效:

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

说明:

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

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

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