Expression régulière pour remplacer “ {” avec “(saut de ligne){” dans xcode
J'ai besoin de changer mon style de codage de mettre les accolades dans la même ligne de new line. J'ai besoin de trouver et de remplacer le (espace){ with (saut de ligne){. J'ai entendu à l'aide de l'expression régulière rechercher et remplacer, son assez simple.
Quelqu'un pourrait-il m'aider sur ce point?
- La norme newline chose de travail? (
\n
) - Être prudent lors de l'
{
se produit à l'intérieur d'une chaîne, ou char-littérale. La plupart des IDE ont une sorte de format-les modèles que vous pouvez régler et puis re-/facteur de re-formater votre base de code, peut-être Xcode a ça aussi? C'est difficile d'aller rechercher-remplacer manuellement.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer les suivantes:
ctrl+q est nécessaire de citer la touche retour. Il n'y a pas de retour visuel pour taper ctrl+q retour, de sorte que le seul personnage visible dans la zone remplacer est l'accolade d'ouverture:
Bien que cela répond à votre question, il y a (au moins!) un seul problème: il ne sera pas de tiret de l'accolade d'ouverture, donc quelque chose comme
est converti à
L'élément de menu Edit > Format > Re-Tiret aura lieu l'ouverture des accolades dans l'indentation onglet, mais il pourrait être non-désiré des effets secondaires à votre style de code.
Edit: comme commenté dans l'autre réponse, vous voulez peut être une expression régulière qui correspond à un nombre arbitraire d'espaces entourant l'accolade, par exemple, \s*{\s*$
Expected identifier
de recherche pour cette
\s\{
et de le remplacer avec\n\{
Votre éditeur doit soutenir les expressions régulières dans les deux rechercher et remplacer des champs. Si vous ne pouvez pas utiliser le \n dans la boîte de dialogue remplacer car il faut de la chaîne littéralement, essayez l'option-entrée suivie par
{
, qui fonctionne dans la plupart des éditeurs, j'ai essayé.\s
est un espace (si il ypeut être plus d'espaces, vous pouvez utiliser
\s+
)\{
besoins de la barre oblique inverse parce que{
doit être échappé qu'il a un autre
sens dans une regex
\n
est pour un retour à la ligneLa meilleure façon cependant serait de reformater votre code où vous choisissez d'avoir votre
{
sur une nouvelle ligne. La plupart des éditeurs vous permettent de définir ces options.Un autre moyen est d'utiliser un code de formatage automatique de la requête, vous pouvez google en ligne et certains permettent de modifier les paramètres comme ça.
char *s = "please don't { break me!";
{
être final (sauf les espaces) par la recherche de\s*\{\s*$
.\s*\{\s*$
serait de le laisser seul, si.{
qui n'a pas besoin de le remplacer. Et que dire de// some comment ending with a brace: {
. Peu importe ce que la regex de la solution de vous jeter sur moi: je vais le casser. Vraiment: vous ne pouvez pas fiable de le faire avec les regex.tops
. Il suffit de collerreplace "{" with "\n}"
(l'aide d'un saut de ligne à la place de la\n
) dans un fichier nommé "règle", et ensuite appelertops -scriptfile rule MyClass.m
de réécrire de manière appropriée. Si vous pouvez comprendre comment coller un saut de ligne dans la ligne de commande sans problème, alors vous pouvez sauter le scriptfile étape de création, aussi.Il suffit de copier un exemple de chaîne de caractères de remplacement (nouvelle ligne ou une autre personne) à partir de code pour le remplacement de la boîte.
Vous pouvez utiliser
[\n\r]
pour décrirenewline
C'est une honte, j'ai découvert que quand je tape sur l'icône loupe à côté de la barre de recherche tout en trouvant quelque chose dans un seul fichier.
De voir plusieurs autres expressions:
cmd
+f
et de la recherche ouvertej'ai cherché un moment pour le savoir, vous devez activer les options de recherche pour les expressions régulières en premier sur la petite loupe dans le côté gauche de la trouver-champ de saisie 😉