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 =)
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
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é.
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.
\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++
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:
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html