2011-02-09 2 views
2

Je voudrais voir ce que les bibliothèques internes sont utilisées dans mon projet Java en effectuant une recherche par le code pourRegex qui correspond à une chaîne et non un mot

import com.mycompany.someproject.path.ClassName; 

Disons que le titre de mon projet est « myproject » . Qu'est-ce regex correspondrait à toutes les lignes qui commencent par

import com.mycompany. 

et ne comprend pas:

myproject.path... 

les lignes correspondantes seraient:

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

et exclure toutes les importations de projets internes:

import com.mycompany.myproject.* 

Répondre

3

Cela devrait k:

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

Explication:

import com\.mycompany\. - La ligne doit commencer par import com.mycompany.. Assez explicite; notez que nous devons échapper aux périodes - \. - afin qu'elles correspondent réellement aux périodes, et non "n'importe quel caractère".

(?!myproject\.) - Ceci s'appelle un "lookahead négatif". La correspondance globale ne réussira que si le motif entre parenthèses (sauf ?!) ne correspond pas.

.* - Tout ce qui est après import com.mycompany. (à l'exception de myproject.) sera apparié.

Questions connexes