Войти

Показать полную графическую версию : [решено] Вытянуть содержание HTML тега с помощью регулярных выражений


aesir
28-08-2009, 03:34
Вечер добрый всем! Помогите написать регулярное выражение. Вобщесть есть следующие данные <div id ="div1">...</div>. мне нужно вынуть содержание данного блока. Вместо трех точек может находится разнообразный текст. Дело в том что если этот блок представлен одной строкой то найти проблемы не возникает - <div id=.div1.>(?<content>.+)</div>...Но как изменить это выражение чтобы оно могло реагировать и на присутствие знака переноса строки и возврата каретки?
Заранее благодарен!

Creat0R
28-08-2009, 05:21
$sStr = @CRLF & '<body>' & @CRLF & '<div id="div1">... content ... ' & @CRLF & ' ...</div>' & @CRLF & '</body>'

$Test = StringRegExpReplace($sStr, '(?s).*<div id="div1">(.*)</div>.*', '\1')

ConsoleWrite($Test & @CRLF)

Из справки (http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm):

(?s) - matches anything including newline. (by default "." don't match newline)

aesir
28-08-2009, 12:00
уууууу спасибо огромное!!! очень помог, а я блин смотрел и в упор не видел что (s?) ловит все подряд:)))Спасибо еще раз!

Creat0R
28-08-2009, 16:23
спасибо огромное!!! очень помог »
Для этого есть ссылка Полезное сообщение под этим самым сообщением. А тему принято отмечать решённой (в заголовке темы есть ссылка «Отметить решенной»), если она является таковой ;)

aesir
28-08-2009, 21:22
Спасибо за совет и еще раз спасибо за помощь!!!:)))




© OSzone.net 2001-2012