RegEx return 多个非重复匹配项
RegEx return multiple non-repeating matches
我有以下模式与 URLs 匹配,最后包含长字符串,这在垃圾邮件中很常见。一些垃圾邮件重复相同的长字符串,因此使用 {4,} 检测具有相同 URL 的电子邮件效果很好,但如果每个 URL 的长字符串不同,则检测失败。除非找到至少 4 个这种模式,否则如何将这种模式扩展到 return "no match"?我试着用 .+ 复制它?在每个副本之间,但在复制两次后,regex101 开始出错。
/(?:(href|src).+?[\w\-\s]{30,}")/g
演示 link 有更好的解释:https://regex101.com/r/EOkJrS/1
这个答案确实属于@degant,但我不知道如何将他的评论标记为答案,而且我还是稍微调整了他的答案....
/(?:(?:(href|src)[\s\S]+?[\w\-\s]{30,}")[\s\S]*?){4,}?/s
这是新模式。它匹配 HTML 代码(垃圾邮件中经常使用的 "a href" 种类和 "img src" 类型)中包含 30 个或更多字符的字符串的所有 URL,这是垃圾邮件机器人使用的典型随机化器愚弄垃圾邮件捕手,同时仍可用作电子邮件捕获链接。
再次感谢@degant 和@trincot 的帮助!
我有以下模式与 URLs 匹配,最后包含长字符串,这在垃圾邮件中很常见。一些垃圾邮件重复相同的长字符串,因此使用 {4,} 检测具有相同 URL 的电子邮件效果很好,但如果每个 URL 的长字符串不同,则检测失败。除非找到至少 4 个这种模式,否则如何将这种模式扩展到 return "no match"?我试着用 .+ 复制它?在每个副本之间,但在复制两次后,regex101 开始出错。
/(?:(href|src).+?[\w\-\s]{30,}")/g
演示 link 有更好的解释:https://regex101.com/r/EOkJrS/1
这个答案确实属于@degant,但我不知道如何将他的评论标记为答案,而且我还是稍微调整了他的答案....
/(?:(?:(href|src)[\s\S]+?[\w\-\s]{30,}")[\s\S]*?){4,}?/s
这是新模式。它匹配 HTML 代码(垃圾邮件中经常使用的 "a href" 种类和 "img src" 类型)中包含 30 个或更多字符的字符串的所有 URL,这是垃圾邮件机器人使用的典型随机化器愚弄垃圾邮件捕手,同时仍可用作电子邮件捕获链接。
再次感谢@degant 和@trincot 的帮助!