Regex替换为Capture不以String结尾

时间:2017-05-10 08:44:22

标签: javascript regex

我需要一些帮助

我的模式看起来像

/°>(http|\/)([^|<]+?)(?!\.gif|\.jpg|\.mp|\.png|\.jpeg)<°/gi

我尝试实现的目标有4个例子:

°>/w NICK<°     

$ 1 - &gt; /
$ 2 - &gt; w NICK

°>http://google.de<°

$ 1 http $ 2://google.de

°>/w NICK|/w NICK<°
由于|

没有匹配项

°>http://google.de/img.png<°

因为以.png结尾

而没有匹配

现在我完全无能为力....我得到前3个示例的正则表达式工作,但无法获得以img扩展名结尾的前瞻 在c#我得到它的工作,但不是为了javascript

1 个答案:

答案 0 :(得分:2)

使用

°>(http|\/)(?![^|<]*\.(?:gif|jpe?g|mp|png)<)([^|<]+)<°

请参阅regex demo

<强>详情:

  • °> - 文字子字符串
  • (http|\/) - 第1组:http/
  • (?![^|<]*\.(?:gif|jpe?g|mp|png)<) - 如果在http/之后,除了|<之外还有0个字符,则表示匹配失败的否定前瞻然后是非捕获组中指定的一些扩展,后跟<
  • ([^|<]+) - 第2组匹配除|<以外的1个或多个字符
  • - 文字子字符串。