Regex Negative lookahead не работает должным образом

У меня есть следующий текст:

 #arkLogo {
            background-image: url("static/images/arklogo.png");
        }   

И я создал регулярное выражение для извлечения всех URL-адресов, например

static/images/arklogo.png

Мое регулярное выражение:

(?!url\s*\()("|').*(?=("|')\))

Но он соответствует URL-адресу с первой цитатой следующим образом:

"static/images/arklogo.png

Я пытаюсь переместить область просмотра вперед, чтобы захватить эту цитату, как это

(?!url\s*\(("|')).*(?=("|')\))

Но в этом случае он соответствует всей строке

background-image: url("static/images/arklogo.png");

Я нашел решение, мне просто нужно использовать положительный просмотр назад, например:

(?<=url\s*\(("|')).*(?=("|')\))

person igorGIS    schedule 24.10.2013    source источник
comment
Не стесняйтесь добавлять ответ на свой вопрос, а не редактировать решение. Это общепринятая практика здесь, в SO, даже если это немного похоже на селфи. Другие могут также присоединиться с предостережениями или лучшими методами.   -  person slackwing    schedule 24.10.2013
comment
А проголосовав за ответ, вы получаете двойные баллы!   -  person Broxzier    schedule 24.10.2013


Ответы (1)


Я нашел решение, мне просто нужно использовать положительный взгляд назад, например:

(?<=url\s*\(("|')).*(?=("|')\))
person igorGIS    schedule 24.10.2013