Я хочу извлечь несколько экземпляров альтернативного текста с помощью регулярных выражений, но не знаю, как
Я использовал это (?<=alt)[\w\s\,\/\(\)\.]*
извлечь первый альтернативный текст. Это здорово, но есть несколько альтернативных текстов, которые я хотел бы извлечь. Я использую регулярное выражение внутри Visual Web Ripper
Код, из которого я извлекаю
<DIV id=ctl00_ContentRightColumn_CustomFunctionalityFieldControl1_ctl00_ctl00_woodFeatures class="woodFeaturesPanel woodFeaturesPanelSingle" sizcache="23614" sizset="0"><H2>Features:</H2> <DIV sizcache="23614" sizset="0"> <UL sizcache="23614" sizset="0"> <LI sizcache="23386" sizset="0"><IMG alt="Information board at site" src="/PublishingImages/icon_infoboard.gif"> <LI sizcache="20558" sizset="0"><IMG alt="Parking nearby" src="/PublishingImages/icon_carparknear.gif"> <LI sizcache="23614" sizset="0"><IMG alt=Grassland src="/PublishingImages/icon_grassland.giF"> <LI sizcache="17694" sizset="0"><IMG alt="Is woodland creation site" src="/PublishingImages/icon_woodlandcreation.gif"> <LI sizcache="21680" sizset="0"><IMG alt="Mainly broadleaved woodland" src="/PublishingImages/icon_mainlybroadleaved.gif"> <LI sizcache="20704" sizset="0"><IMG alt="Mainly young woodland" src="/PublishingImages/icon_mainlyyoung.gif"> <LI> <LI></LI></UL></DIV></DIV>
1 ответ
Решение
Без языка это сложно сказать, но используя шаблоны памяти, вы можете получить то, что вам нужно:
/alt=(\w\S*|"([^"]*)")/
С помощью preg_match_all()
это дает следующие результаты:
Array
(
[0] => Array
(
[0] => alt="Information board at site"
[1] => alt="Parking nearby"
[2] => alt=Grassland
[3] => alt="Is woodland creation site"
[4] => alt="Mainly broadleaved woodland"
[5] => alt="Mainly young woodland"
)
[1] => Array
(
[0] => "Information board at site"
[1] => "Parking nearby"
[2] => Grassland
[3] => "Is woodland creation site"
[4] => "Mainly broadleaved woodland"
[5] => "Mainly young woodland"
)
[2] => Array
(
[0] => Information board at site
[1] => Parking nearby
[2] =>
[3] => Is woodland creation site
[4] => Mainly broadleaved woodland
[5] => Mainly young woodland
)
)
Второй шаблон памяти предназначен для строк в двойных кавычках; если пусто, вы должны смотреть на первый шаблон памяти вместо этого.