Я хочу удалить все http: и https: в файлах HTML, но исключить 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 - подстрока https? - необязательный s: - двоеточие.
Используйте
/(?<!placeholder = ")https?:/