正则表达式查询查找错误标记的超链接

正则表达式查询查找错误标记的超链接

我正在尝试运行正则表达式命令来解析收到的电子邮件,以识别任何由试图使用我们公司名称变体的虚假/钓鱼网站发送的超链接。我们的公司是 abcdomain。标准是:

  1. 查找包含我们公司名称“abcdomain”的所有超链接(主机名部分)
  2. 排除所有我们自己注册的域名,即myabcdomain.com,site.abcdomain.com,abcdomain.net等)

我的正则表达式格式不正确,在某些变体下无法工作。问题可能与我的排除方式有关。起初,我确实试图排除“abcdomain.com”,但正则表达式似乎无法正常工作。

  • 询问:(http[s]?|ftp)\S*?(abcdomain|myabcdomain)(?!\.com)
  • 细绳:http://www.abcdomain.com/logo/email/abcdomain-email-logo.png
  • 结果:应该是排除但查询命中了第二个 abcdomain


  • 询问:(http[s]?|ftp):\/\/([\dA-Za-z\.]*)(abcdomain|myabcdomain)(?!.com|..net)

  • 细绳:http://www.fakeabcdomain.com
  • 结果:应该是包括但我的排除只关注命中结果)

答案1

这一个适用于您的测试用例:

(?:ht|f)tps?://(?=[^/]*(?:myabcdomain|abcabcdomain|abcdomain(?:\.zendesk)?))(?!(?:\w+\.)?(?:myabcdomain|abcabcdomain|abcdomain(?:\.zendesk)?)\.com)\S+

解释:

(?:ht|f)tps?://         : protocol
(?=                     : positive lookahead, make sure we have after
  [^/]*                 : 0 or more non slash
  (?:                   : start non capture group
    myabcdomain         : literally
  |                     : OR
    abcabcdomain        : literally
  |                     : OR
    abcdomain           : literally
    (?:\.zendesk)?      : followed with optional
  )                     : end group
)                       : end lookahead
(?!                     : negative lookahead, make sure we don't a=have after
  (?:\w+\.)?            : optional, 1 or more word character and a dot
  (?:                   : start non capture group
    myabcdomain         : literally
  |                     : OR
    abcabcdomain        : literally
  |                     : OR
    abcdomain           : literally
    (?:\.zendesk)?      : followed with optional
  )                     : end group
  \.com                 : literally
)                       : end lookahead
\S+                     : 1 or more any character that is not a space

它匹配:

<a href="http://abcdomain.products.com.vbs">
<a href="https://abcdomainproducts.com">
<a href="http://products.abcdomain.products.net">
<a href="https://products.abcdomainproducts.com/test">
<a href="http://fakeabcdomain.products.com.vbs">
<a href="http://myabcdomain.products.com.vbs">
<a href="http://fakeabcdomain.com">

并且不匹配:

<a href="http://products.myabcdomain.com/help">
<a href="http://abcdomain.zendesk.com/help">
<a href="http://myabcdomain.com/help">
<a href="http://abcdomain.com/help">
<a href="http://products.abcabcdomain.com">

相关内容