否定正则表达式中的特定单词

时间:2019-09-01 12:28:29

标签: regex

我有以下文本要通过正则表达式进行匹配

  

a href =“ https://www.bing.com/aclk”

但是如果bing进入域,我不希望这种类型的链接匹配。

我尝试遵循正则表达式作为stackoverflow答案之一的答案,但它匹配。

function titleCase(str) {
  let arr = str.toLowerCase().split(' ');
  for (let i = 0; i < arr.length; i++) {
    arr[i].replace(arr[i][0], arr[i][0].toUpperCase())
  }
  
  let a = arr.join(' ');
  return a;
}

console.log(titleCase("I'm a little tea pot"));

a href="(https?://(?!bing)[^"]+)"

我想要一个正则表达式,该表达式将返回与域中包含单词a href="(https?://(?:www\.)?(?!bing)[^"]+)" 的链接不匹配的链接。

1 个答案:

答案 0 :(得分:0)

您可以使用否定的前瞻性来过滤域中允许的内容。

a href="(https?://(?![^/"]*bing)[^"]+)"

请注意,您可能必须转义斜线,具体取决于您如何使用此正则表达式:

a href="(https?:\/\/(?![^\/"]*bing)[^"]+)"

这里是demo