Строка соответствия без хоста - PullRequest
1 голос
/ 10 июля 2019

У меня есть пример здесь 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"

1 Ответ

2 голосов
/ 10 июля 2019

Вы можете использовать это регулярное выражение с исправленным утверждением предпросмотра:

url\s*\((?![^)]*http:)[^)]+\)

Обновленная демоверсия RegEx

Здесь (?![^)]*http:) - это отрицательное прогнозное утверждение, которое провалит совпадение, если перед нами будет строка http:, следующая за 0 или более non-( символами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...