Comment peut-on rechercher et remplacer 2 lignes (ensemble) via Eclipse?

Je voudrais rechercher plusieurs fichiers via eclipse pour les 2 lignes suivantes:

@Length(max = L_255) private Ssortingng description; 

et remplacez-les par ces deux:

 @Length(max = L_255, message="{validator.description.len}") private Ssortingng description; 

La recherche est multi-ligne par défaut dans Eclipse lorsque vous utilisez regex:

 (\@Length\(max = L_255)\)([\r\n\s]+private) 

Je voudrais append “Description de chaîne privée”

 (\@Length\(max = L_255)\)([\r\n\s]+private\s+?Ssortingng\s+description\s*?;) 

remplacé par:

 \1, message="{validator.description.len}")\2 

Il fonctionne parfaitement dans une recherche de fichier déclenchée par un CTRLH .

Recherche multiligne Eclipse

Comme mentionné dans la réponse de Tika , vous pouvez copier directement les deux lignes sélectionnées dans le champ “Containing Text” : ces lignes seront converties en expression rationnelle par Eclipse.

Une autre astuce pour obtenir la regex pour un bloc sélectionné. Ouvrez l’un des fichiers contenant les plusieurs lignes (multiline) à rechercher ou à remplacer. Cliquez sur Ctrl + F et sélectionnez “Expression régulière”. Fermez la fenêtre Rechercher / Remplacer. Sélectionnez le bloc dont vous avez besoin et cliquez à nouveau sur Ctrl + F pour ouvrir la fenêtre Rechercher / Remplacer. Maintenant, dans la zone de texte Rechercher, vous avez l’expression régulière qui correspond exactement à votre bloc de sélection.

(J’ai découvert cela seulement après avoir créé manuellement une expression rationnelle pour un très long bloc 🙂

CTRL + H prend deux lignes si vous utilisez regexp (et vous n’avez pas besoin d’écrire l’expression régulière vous-même, eclipse le fait pour vous).

  1. Sélectionnez vos lignes.
  2. Cliquez sur CTRL + H. La boîte de dialog de recherche s’ouvre. Si “Expression régulière” est déjà cochée, eclipse aura converti pour vous les deux lignes que vous recherchez en regexp, cliquez sur Rechercher. Si “Expression régulière” si elle n’est pas déjà cochée “, cochez-la et cliquez sur Annuler (eclipse se souvient de votre choix).
  3. Sélectionnez vos lignes à nouveau.
  4. Cliquez sur CTRL + H. La boîte de dialog de recherche s’ouvre. Cette fois, “expression régulière” est déjà sélectionné. eclipse aura converti les deux lignes que vous recherchez en regexp pour vous, cliquez sur Rechercher.

Astuce rapide pour inclure plusieurs lignes dans une expression régulière construite manuellement:

Où vous utiliseriez normalement .* faire correspondre n’importe quel caractère à zéro ou plusieurs fois, envisagez plutôt d’utiliser quelque chose comme (?:.|\r?\n)* . Ou mettre un extra ? à la fin pour le rendre non gourmand.

Explication:. ne correspond pas aux nouvelles lignes, vous devez donc faire un “ou-ou”: les parenthèses correspondent à la . avant le tuyau ou la nouvelle ligne après elle. Le ? Après \r le retour à la ligne avant le saut de ligne est facultatif pour autoriser les nouvelles lignes Windows ou Unix. Le ?: Exclut le tout en tant que groupe de capture (ce qui permet d’éviter un débordement de stack).

Sélectionnez le dossier qui contient tous vos fichiers et appuyez sur Ctrl + H.