Регулярное выражение, соответствующее строке, а не слову - PullRequest
2 голосов
/ 09 февраля 2011

Я бы хотел посмотреть, какие внутренние библиотеки используются в моем 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 Ответ

3 голосов
/ 09 февраля 2011

Это должно работать:

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

Объяснение:

import com\.mycompany\. - строка должна начинаться с import com.mycompany..Довольно понятен;обратите внимание, что нам нужно избегать периодов - \. - так, чтобы они фактически соответствовали периодам, а не «любому символу».

(?!myproject\.) - Это называется «отрицательный взгляд».Общее совпадение будет успешным, только если шаблон в скобках (за исключением ?!) не совпадает.

.* - Все, что после import com.mycompany. (кроме myproject.) будет сопоставлено.1018 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...