从 HTML 中删除所有 http 和 https,但排除占位符

Remove all http and https from HTML but exclude placeholder

我想删除 HTML 文件中的所有 http:https:,但不包括 placeholder="http:placeholder="https:。我尝试了以下示例,但每个 http: 和 https: 都将被删除:

/(?!placeholder=")(http:|https:)/

您需要将前瞻性替换为后瞻性。此外,您可以将交替减少为仅 https?: 模式,其中 s? 表示 1 或 0 s:

'/(?<!placeholder=")https?:/'
    ^                   ^^

如果要确保 placeholder 作为一个完整的单词匹配,请添加单词边界:

'/(?<!\bplaceholder=")https?:/'
      ^^

如果placeholder之前必须有空格,请将\b替换为\s

详情

  • (?<!\bplaceholder=") - 字符串中紧跟整个单词 placeholder="
  • 的位置
  • http - http 子串
  • s? - 一个可选的 s
  • : - 一个冒号。