Comment rechercher un retour de chariot dans eclipse

si j'ai le texte suivant dans mon éditeur eclipse:

Text Line 1
Text Line 2

je voudrais concaténer le texte en:

Text Line 1Text Line 2

mon idée première était de chercher le caractère de retour de chariot 'n' et de le remplacer par " pour le concaténer.

j'ai essayé d'utiliser la fonction de recherche de eclipse, mais elle ne reconnaît pas le caractère de retour de chariot.

y a-t-il un autre éditeur qui puisse faire ça ?

Merci =)

41
demandé sur Johannes Weiss 2009-09-08 04:29:54

5 réponses

Eclipse fait cela si vous:

  • activer le mode d'expression régulière dans la recherche / remplacer
  • entrer \R pour la nouvelle ligne
61
répondu soru 2018-04-18 18:43:55

il suffit d'utiliser Edit -> Find/Replace , d'allumer la case Regular Expressions , de rechercher \n et de la remplacer par espace.

j'ai essayé dans Eclipse 3.4 et ça a bien fonctionné.

8
répondu Johannes Weiss 2009-09-08 00:33:10

la plupart des tâches de recherche et de remplacement dans les éditeurs (au moins, TextPad) ont la possibilité de remplacer via un regex. Si vous pouvez trouver cette option dans eclipse, alors utilisez simplement cette option.

2
répondu Noon Silk 2009-09-08 00:31:26

\R est l'expression régulière correcte pour le retour de chariot. Mais Eclipse standard editor ne le trouve pas. Utilisez donc l'éditeur externe, par exemple le bloc-notes++

1
répondu Crimean.us 2017-08-23 15:20:22

courte réponse :

j'ai décidé d'utiliser \s++ comme séparateur dans les expressions de recherche multilignes (avec expressions régulières activées) et \Qfoo\E pour échapper aux caractères spéciaux si nécessaire.

longue réponse :

comme soru déjà répondu, pour toute "séquence Unicode linebreak" une recherche d'expression régulière avec \R peut être utilisé.

Un pur retour chariot est représenté par \r . Les majuscules et les minuscules font la différence.

j'ai trouvé cette question SO parce que je voulais rechercher une expression multi-ligne dans Eclipse, y compris les sauts de ligne et les onglets:

    @Override
    @Transient

afin d'inclure les espaces blancs dans mon expression de recherche régulière, j'ai utilisé (sur la plate-forme Windows)

@Override\r\n\t*@Transient

les expressions suivantes fonctionnent aussi:

  • @Override\R\t*@Transient
  • @Override\s++@Transient

prendre note que la seconde expression correspond également à la @Override @Transient sans rupture de ligne , ce qui est très bien pour moi.

les expressions suivantes n'ont pas! travailler pour moi:

  • @Override\r\t*@Transient
  • @Override\n\t*@Transient

explication de certaines expressions régulières:

  • \R représente toute séquence de linebreak unicode (par exemple \r\n )
  • \s représente tout espace blanc
  • \t représente un onglet
  • * correspond à zéro ou plus occurrences
  • ++ correspond à une ou plusieurs occurrences
  • \Q et \E d'échapper à la enveloppé de contenu. Utilisez-les si votre expression originale de plusieurs lignes inclut des caractères regex spéciaux, par exemple

\Q/**\E\s++\Q*\E

correspond à

    /**
     *

Voir aussi:

différence entre \n et \r?

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

1
répondu Stefan 2017-12-14 14:08:48