Вопрос
Мне нужно 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
, это избавит вас от многих проблем, и вы сможете забыть о регулярных выражениях. р>
Пример: НАЖМИТЕ МНЕ