Мне нужно обработать содержимое HTML и заменить значение IMG SRC на фактические данные. Для этого я выбрал Регулярные выражения.Синтаксис Regex - Справка
В первую мою попытку мне нужно найти теги IMG. Для этого я использую следующее выражение:
<img.*src.*=\s*".*"
Затем в теге IMG Ищу SRC = «...» и заменить его новым значением SRC. Я использую следующее выражение для получения SRC:
выпусковsrc\s*=\s*".*"\s*
Второго выражения, имеющие:
Для следующего текста он работает:
<img alt="3D""" hspace=
"3D0" src="3D"cid:TDCJXACLPNZD.hills.jpg"" align=
"3dbaseline" border="3d0" />
Но для следующих за ним не:
<img alt="3D""" hspace="3D0" src=
"3D"cid:UHYNUEWHVTSH.lilies.jpg"" align="3dbaseline"
border="3d0" />
Что происходит, это выражение возвращает
src="3D"cid:TDCJXACLPNZD.hills.jpg"" align=
"3dbaseline"
Он не возвращает только часть src, как ожидалось.
Я использую библиотеку регулярных выражений C++ Boost.
Пожалуйста, помогите мне разобраться в проблеме.
Thanks, Hilmi.
Какой позор вы выбрали регулярные выражения, которые хрупки и * не могут * анализировать HTML общего назначения. Использование надлежащего анализатора HTML сделает его намного более надежным. (Но какова сделка с 3D и квотами? Похоже, что комбинация неподходящих кавычек и кодирования HTML исказила эту разметку, прежде чем вы даже начали ее прочитывать.) – bobince