Вопрос

Мне нужно preg_match для

src="http://      "

где пробел после // — это остальная часть URL-адреса, заканчивающаяся на «.Моя адаптированная версия, похоже, не работает:

preg_match('#src="(http://[^"]+)#', $data, $match); 

И я также изо всех сил пытаюсь получить текст, который начинается с > и заканчивается ЛИБО точкой.или восклицательный знак!или вопросительный знак?Я понятия не имею, как это сделать.Пример текста, для которого я хочу использовать preg_match:

 blahblahblah>Hello world this is what I want.

Я надеюсь, что добрый гуру preg_match сможет дать мне ответ и сэкономит мне часы чесания головы.

Спасибо за прочтение.

Это было полезно?

Решение

Что касается URL:

preg_match('#src="(.*?)"#', $data, $match);

и для второго случая используйте / > (. *?) (\. |! | \?) /

Другие советы

(.*?)" будет жадно соответствовать любому символу до тех пор, пока не увидит конечную двойную кавычку.

Кажется, что вы хотите проанализировать документ или строку, которая соответствует HTML, DOM, XML или чему-то похожему. Используйте XPath и выполните синтаксический анализ тега и дайте ему вернуть src Attribute , это избавит вас от многих проблем, и вы сможете забыть о регулярных выражениях.

Пример: НАЖМИТЕ МНЕ

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top