2010-08-06 11 views
1

Je dois faire correspondre des variables commençant par une lettre minuscule et ne se terminant pas par un trait de soulignement.Questions de regex de recherche structurelle IntelliJ

J'ai ces trois domaines:

private String shouldFlag; 
private String shouldntFlag_; 
private String SHOULDNTFLAG; 

Avec ce modèle inversé: ^[a-z].*_$

Utilisé avec pour nomchamp dans le modèle suivant:

class $Class$ { 
    $FieldType$ $FieldName$ = $Init$; 
} 

Le problème est que SHOULDNTFLAG est toujours marqué. J'ai essayé d'utiliser ^[a-z].*_$|^[A-Z].*$, mais cela ne correspond à rien, encore moins juste shouldFlag. Qu'est-ce que je fais mal ici?

Répondre

2

En supposant que vos noms de variables ne peuvent contenir que des lettres ASCII et chiffres plus le trait de soulignement, j'irais avec

\b[a-z]\w*\b(?<!_) 

EDIT: ... et, comme @Stefan a souligné, vous devez sélectionner le « cas "sensible".

+0

Cela semble accepter SHOULDNTFLAG dans Intelli-J. Il semble que la classe de caractères [a-z] soit traitée comme [a-zA-Z] –

+0

Vous devez vérifier explicitement «sensible à la casse» dans le SSR. –

+0

Cool, merci. Je n'ai jamais utilisé cette fonctionnalité. Je m'attends toujours à ce que les outils de recherche basés sur regex - en particulier dans les éditeurs IDE et programmeurs - soient sensibles à la casse par défaut, mais ils me surprennent toujours. :/ –