2017-10-07 2 views
1

Je voudrais filtrer un texte, mais je ne trouve pas de moyen de le faire. Mon texte est comme ceci:Comment fusionner des lignes qui sont séparées par =====

name: name1 
house: house1 
nationality: nationality1 
============================= 
name: name2 
house: house2 
nationality: nationality2 
============================= 
name: name3 
house: house3 
nationality: nationality3 

Et je voudrais faire comme ça:

name: name1 house: house1 nationality: nationality1 
============================= 
name: name2 house: house2 nationality: nationality2 
============================= 
name: name3 house: house3 nationality: nationality3 

Peut-il être fait avec Notepad ++? Ou y a-t-il une autre façon de le faire? Merci d'avance.

Répondre

0

Dans Notepad ++, essayez cette Regex:

(?<!=)[\r\n]+(?!=)

Click for Demo

EXPLICATION:

  • (?<!=) - Un lookbehind négatif pour trouver la position qui est pas précédé immédiatement un =
  • [\r\n]+ - Jeux 1+ occurrences d'un caractère de saut de ligne ou un immédiatement après la position de retour chariot trouvées à l'étape précédente
  • (?!=) - préanalyse négative pour valider que le jeu en cours ne sont pas immédiatement suivi par un =

SORTIE:

Avant Remplacement:

enter image description here

Après avoir remplacé l'espace:

enter image description here

+0

fonctionne parfaitement! Je vous remercie. –

1

S'il n'y a pas de lignes « normales » se terminant ou commençant par « = », en remplaçant ([^=])\n([^=]) avec \1 \2 (ou $1 $2, dépend du moteur) devrait fonctionner. Signifie "tout caractère qui n'est pas un signe égal", les parenthèses s'assurent que nous pouvons utiliser ce caractère dans notre remplacement et \n est un saut de ligne.

Comme il ne correspondra pas aux sauts de ligne entourant le séparateur, il les laissera seuls.