У меня есть пример здесь https://regex101.com/r/ZDof07/1
Мне нужно выбрать строки, которые не содержат http.
Итак, в моем примере мне нужно получить строку:
url ( /global/css/bootstrap/fonts/glyphicons-halflings-regularhttp.eot ) url(/global/css/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix)
Я использую это регулярное выражение:
/url\s*\((?!http)[^\)]+\)/gmi
Выражение требует еще больше строки:
url( http://www.neco.cz/global/css/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix)
, но я не хочу, потому что оно содержит "http"
Вы можете использовать это регулярное выражение с исправленным утверждением предпросмотра:
url\s*\((?![^)]*http:)[^)]+\)
Обновленная демоверсия RegEx
Здесь (?![^)]*http:) - это отрицательное прогнозное утверждение, которое провалит совпадение, если перед нами будет строка http:, следующая за 0 или более non-( символами.
(?![^)]*http:)
http:
non-(