3 votes

Supprimer les lignes avec un caractère spécifique avec javascript et regex

J'ai quelques fichiers texte contenant quelque chose comme :

CID Principal CID 2 CID 3 CID 4
-
-
-
-
Observações Gerais:
Paciente relata dor cronica ,agudizada e limitante do joelho direito , edema +/3+, nega trauma ou queda, dor a palpação na interlinha articular medial.
Hipótese Diagnóstica:
Conduta:
Lisador dip, restiva 5 mg adesivos, gelo, fisioterapia, Rx da bacia, joelhos com carga e orientações.

Je voudrais une regex pour m'en débarrasser :

  • toutes les lignes vides
  • les lignes contenant uniquement "-" et pas plus de caractères.

J'ai essayé :

mytext.replace(/^\s*[\r\n\-]/gm, "");

Mais pas de chance. Comment pourrais-je faire cela en utilisant le javascript ?

4voto

Wiktor Stribiżew Points 100073

Si les lignes comportant des traits d'union sont toujours constituées d'un seul trait d'union, il est préférable d'opter pour une solution non régénérée telle que

text.split("\n").filter(x => x.trim().length > 0 && x != '-').join("\n")

Pour ce qui est d'une solution regex, vous pouvez utiliser

/^(?:\s*|-+)$[\r\n]*/gm

Voir le Démonstration de regex . Notez qu'il supprimera les lignes composées d'un ou plusieurs traits d'union, si cela n'est pas prévu remplacez -+ con - .

Detalles :

  • ^ - début d'une ligne
  • (?:\s*|-+) - soit zéro ou plusieurs espaces blancs, soit un ou plusieurs tirets
  • $ - fin de ligne
  • [\r\n]* - zéro ou plusieurs caractères CR ou LF.

Voir une démo JavaScript :

const text = "CID Principal CID 2 CID 3 CID 4\n-\n-\n-\n-\nObservações Gerais:\nPaciente relata dor cronica ,agudizada e limitante do joelho direito , edema +/3+, nega trauma ou queda, dor a palpação na interlinha articular medial.\nHipótese Diagnóstica:\nConduta:\nLisador dip, restiva 5 mg adesivos, gelo, fisioterapia, Rx da bacia, joelhos com carga e orientações.";
const regex = /^(?:\s*|-+)$[\r\n]*/gm;
console.log(text.replace(regex, ''));
// Non-regex solution:
console.log(text.split("\n").filter(x => x.trim().length > 0 && x != '-').join("\n"));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X