删除特定字符,除非前面有某些特定字符串

remove specific character unless preceded by some specific string

我看了很多,但找不到我的案子的答案。所以我想 remove specific character 除非它前面有一些特定的字符串。例如,如果我有如下一段

var para = '<test@gmail.com>
  >Lorem ipsum dolor sit amet,<test@gmail.com> consectetur
  >adipiscing elit. Integer nec >
  >odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla 
  >quis sem at nibh elementum imperdiet.Duis sagittis ipsum. Praesent 
  >mauris. Fusce nec tellus sed augue semper porta. Mauris massa. 
  >Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu. 
  <test@gmail.com> '

我想删除所有“>” 除了 '.com'

之后的那些

输出应该像

var para = '<test@gmail.com>
   Lorem ipsum dolor sit amet,<test@gmail.com> consectetur
   adipiscing elit. Integer nec 
   odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla 
   quis sem at nibh elementum imperdiet.Duis sagittis ipsum. Praesent 
   mauris. Fusce nec tellus sed augue semper porta. Mauris massa. 
   Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu. 
  <test@gmail.com> '

我知道如果我知道

para = para.replace(/\>/g,'');

这将替换所有“>”,但我需要为其添加该条件。

[^m]> 应该做的工作。

请参阅 regex101

中的演示

解释: [^m]> 说应该匹配每个 > 前面没有 m 字符。

要删除除“.com”之后的所有“>”,请使用 negative lookbehind

para = para.replace(/(?<!\.com)>/g,'');