2012-02-03 3 views
0

Я пытаюсь соответствовать SRC = теги "URL", как следующее:Img тег ЦСИ соответствия PHP регулярное выражение

src="http://3.bp.blogspot.com/-ulEY6FtwbtU/Twye18FlT4I/AAAAAAAAAEE/CHuAAgfQU2Q/s320/DSC_0045.JPG" 

В принципе, все, что имеет somre вид bp.blogspot URL внутри атрибута SRC. У меня есть следующий, но это только частично рабочие:

preg_match('/src=\"(.*)blogspot(.*)\"/', $content, $matches); 
+3

И что бы "частично работать" означает? – mario

+0

Некоторые тестовые данные и примеры результатов помогут вам устранить эту проблему. –

+0

Не достаточно сильный, но src = "([^"] * bp \ .blogspot \ .com [^ "] *)" должен соответствовать нормальным случаям. – Kleenestar

ответ

3

Это один принимает весь Blogspot URLs и позволяет спасся цитаты:

src="((?:[^"]|(?:(?<!\\)(?:\\\\)*\\"))+\bblogspot\.com/(?:[^"]|(?:(?<!\\)(?:\\\\)*\\"))+)" 

URL-адрес получает захвачен, чтобы соответствовать группе 1.

You необходимо будет избежать \ и / с дополнительным \ (для каждого случая!) для использования в preg_match(…).

Объяснение:

src=" # needle 1 
(# start of capture group 
    (?: # start of anonymous group 
     [^"] # non-quote chars 
     | # or: 
     (?:(?<!\\)(?:\\\\)*\\") # escaped chars 
    )+ # end of anonymous group 
    \b # start of word (word boundary) 
    blogspot\.com/ # needle 2 
    (?: # start of anonymous group 
     [^"] # non-quote chars 
     | # or: 
     (?:(?<!\\)(?:\\\\)*\\") # escaped chars 
    )+ # end of anonymous group 
    ) # end of capture group 
" # needle 3 
+0

Упоминайте, как это работает? –

+1

@Kolink: Конечно. Он принимает префикс, состоящий из '[^"] 'или' "', которому предшествует неравномерное (таким образом, экранирующее) число '\'. Затем он ищет 'blogspot.com', требуя, чтобы ведущему' b' не предшествовала буква ('\ b': граница слова), а затем суффикс, к которому применяются те же правила, что и для префикса. Необычные вещи необходимы для принятия скрытых цитат. – Regexident

+0

Да, и был ли 2 б в блоге? Кроме того, что нужно и нужно и нужно избегать? Потому что есть тонна ha – joshholat

Смежные вопросы