Dans le cas où la chaîne suivante doit être analysée.
ford mustang,10,blue~~?bugatti veyron,13,black
Je veux remplacer le ~~?
avec un carriage return
Remplacer par \n
ajoute simplement la chaîne "\n"
Comment cela peut-il être fait ?
Dans le cas où la chaîne suivante doit être analysée.
ford mustang,10,blue~~?bugatti veyron,13,black
Je veux remplacer le ~~?
avec un carriage return
Remplacer par \n
ajoute simplement la chaîne "\n"
Comment cela peut-il être fait ?
Assurez-vous que l'option "Utiliser : Expressions régulières" est sélectionné dans la boîte de dialogue Rechercher et remplacer :
Notez que pour Visual Studio 2010, cela ne fonctionne pas dans l'onglet Outils de productivité de Visual Studio Vous devez donc utiliser la boîte de dialogue Rechercher et remplacer complète (Ctrl+Shift+H ou Édition --> Rechercher et remplacer --> Remplacer dans les fichiers) et modifier le champ d'application pour qu'il devienne "Document actuel".
Et si vous essayez de faire correspondre des caractères spéciaux comme les parenthèses, n'oubliez pas d'utiliser e.g. \)
quand les expressions régulières sont activées...
Le site ?
doit être échappé dans Regex car il signifie que l'élément précédent est facultatif. Ainsi, le texte correct "Trouver quoi" est ~~\?
avec le point d'interrogation échappé par une barre oblique inversée. La réponse que vous avez donnée fonctionne avec l'exemple de texte car elle trouvera avidement le deuxième tilde et le consommera, mais si un tilde simple existe également dans le texte, il sera remplacé par une nouvelle ligne.
Si vous voulez éviter de devoir échapper les caractères spéciaux dans votre chaîne de recherche et de remplacement lorsque vous utilisez des expressions régulières, procédez comme suit :
Notez que même si vous souhaitez picher manuellement les correspondances pour la première recherche et le remplacement, vous pouvez utiliser sans risque "replace all" pour les trois dernières étapes.
Par exemple, si vous voulez remplacer ceci :
public IFoo SomeField { get { return this.SomeField; } }
avec ça :
public IFoo Foo { get { return this.MyFoo; } }
public IBar Bar { get { return this.MyBar; } }
Vous feriez les substitutions suivantes :
public IFoo SomeField { get { return this.SomeField; } }
XOXOXOXO
(regex off ).XOXOXOXO
XOXOXOXO\nHUHUHUHU
(regex sur ).XOXOXOXO
public IFoo Foo { get { return this.MyFoo; } }
(regex off ).HUHUHUHU
public IFoo Bar { get { return this.MyBar; } }
(regex off ).
Si vous avez une solution pratique à ce problème qui évite d'avoir à échapper manuellement votre texte de recherche et de remplacement lors de sa transformation en expressions régulières, et de passer les 10 prochaines minutes à réparer le monstre créé de cette façon, je serais très heureux de l'entendre, car ma réponse n'est qu'un affreux hack. Mais comme vous pouvez le constater, toutes les autres réponses qui fonctionnent sur un Visual Studio vanille sans plug-ins supplémentaires nécessitent l'utilisation d'expressions régulières, et donc l'échappement de texte simple.
Je ne voulais pas dire ça dans le mauvais sens. Je m'excuse d'avoir oublié de mettre un smiley :D Quant à la solution, je n'en ai pas qui implique VS. Mais j'ai trouvé que n'importe quel éditeur externe décent qui supporte les regex (notepad++ etc) fonctionne très bien.
UltraEdit est le roi du remplacement par recherche - ici, vous recherchez les nouvelles lignes, les sauts de ligne ou autres en marquant simplement ces lignes et en lançant la recherche. - Comme pour le remplacement, il suffit d'entrer ^n pour \n , ^r pour \r et ^t pour \t - si seulement VS2010 pouvait faire de même :-)
Vous pouvez utiliser Recherche et remplacement multilignes dans Visual Studio macro qui fournit une interface graphique agréable pour cette tâche.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.