使用javascript和regex删除带有特定字符的行



我有一些文本文件包含如下内容:

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.

我想用正则表达式去掉:

  • 所有空行
  • 只包含"-"并且没有更多的字符。

I have try:

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

但是运气不好。我怎么用javascript做到这一点呢?

如果带有连字符的行总是由单个连字符组成,您不妨使用非正则表达式解决方案,如

text.split("n").filter(x => x.trim().length > 0 && x != '-').join("n")
对于正则表达式解决方案,您可以使用
/^(?:s*|-+)$[rn]*/gm

参见regex演示。注意,它将删除包含一个或多个连字符的行,如果不希望这样做,将-+替换为-

细节:

  • ^-起始行
  • (?:s*|-+)- 0个或多个空格或一个或多个连字符
  • $-行尾
  • [rn]*- 0个或多个CR或LF字符。

查看JavaScript演示:

const text = "CID Principal CID 2 CID 3 CID 4n-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*|-+)$[rn]*/gm;
console.log(text.replace(regex, ''));
// Non-regex solution:
console.log(text.split("n").filter(x => x.trim().length > 0 && x != '-').join("n"));

最新更新