2009-09-08 18 views
39

Si j'ai le texte suivant dans mon éditeur Eclipse:Comment chercher retour chariot dans Eclipse

Text Line 1 
Text Line 2 

Je voudrais concaténer le texte dans:

Text Line 1Text Line 2 

Ma première idée était de recherchez le caractère de retour chariot '\ n' et remplacez-le par '' pour le concaténer.

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

Y a-t-il un autre éditeur capable de faire cela?

Merci =)

Répondre

59

Eclipse fait cela si vous:

  • Activer le mode d'expression régulière est la recherche/remplacer
  • entrer \ R pour la nouvelle ligne
2

La plupart trouvent et remplacer les tâches dans les éditeurs (au moins, TextPad) ont la capacité de remplacer par une expression régulière. Si vous pouvez trouver cette option dans eclipse, utilisez-la.

8

Utilisez simplement Edit -> Find/Replace, activez la case Regular Expressions, recherchez \n et remplacez-la par de l'espace. Je l'ai essayé dans Eclipse 3.4 et ça a bien fonctionné.

+0

+1 pour expliquer les étapes. – McGafter

0

\ r est l'expression régulière correcte pour le retour de chariot . Mais l'éditeur standard Eclipse ne le trouve pas. Il faut donc utiliser un éditeur externe, par exemple notepad ++

0

réponse courte:

j'ai décidé d'utiliser \s++ comme séparateur dans les expressions de recherche multi-ligne (avec des expressions régulières compatibles) et \Qfoo\E pour échapper à des caractères spéciaux si nécessaire.

Réponse longue:

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

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

Je trouve cette question SO parce que je voulais rechercher une expression multi-ligne dans Eclipse, y compris les sauts de ligne et onglets:

@Override 
    @Transient 

Afin d'inclure les espaces blancs dans mon expression de recherche régulière je (sur plate-forme Windows)

@Override\r\n\t*@Transient 

Après des expressions aussi du travail:

S'il vous plaît noter que la deuxième expression correspond également @Override @Transient sans saut de ligne, ce qui est bien pour moi.

Les expressions suivantes ne l'ont pas! travail pour moi:

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

Explication de certaines expressions régulières:

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

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

matchs

/** 
    * 

Voir aussi:

Difference between \n and \r?

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

Questions connexes