Удалить все http и https из HTML, но исключить заполнитель - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу удалить все http: и https: в файлах HTML, но исключить placeholder="http: и placeholder="https:.Я пробовал следующий пример, но все http: и https: будут удалены:

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

1 Ответ

0 голосов
/ 16 февраля 2019

Вам нужно заменить взгляд вперед взглядом назад.Кроме того, вы можете уменьшить чередование до простого шаблона https?:, где s? означает 1 или 0 s:

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

Если вы хотите убедиться, что placeholder соответствует целому слову, добавьте границу слова:

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

Если перед placeholder должен быть пробел, замените \b на \s.

Подробности

  • (?<!\bplaceholder=") - место внутри строки, которому сразу предшествует целое слово placeholder, а затем ="
  • http -http подстрока
  • s? - необязательно s
  • : - двоеточие.
...