Что нового

Исключение в регулярном выражении

Коршун

Новичок
Сообщения
58
Репутация
1
Прошу помочь:
есть строка
Код:
<div class="list_product_prices">
   <span class="nowrap">777</span>
</div>
...
<div class="list_product_prices">
</div>
...
<div class="list_product_prices">
   <span class="nowrap">888</span>
</div>
Как найти три значения "777", "", "888" в массиве одним выражением?
У меня находятся только 2 значения
Код:
#include <Array.au3>
$STR = '<div class="list_product_prices">   <span class="nowrap">777</span></div>...<div class="list_product_prices"></div>...<div class="list_product_prices">   <span class="nowrap">888</span></div>'
$aArray = StringRegExp($STR, '.*?list_product_prices.*?nowrap.?>(.*?)</span>.*?</div>.*?', 3)
_ArrayDisplay($aArray)
 

рррреееееее

Новичок
Сообщения
4
Репутация
0
Код:
#include <Array.au3>
$STR = '<div class="list_product_prices">   <span class="nowrap">777</span></div>...<div class="list_product_prices"></div>...<div class="list_product_prices">   <span class="nowrap">888</span></div>'

$aArray = StringRegExp($STR, '.*?list_product_prices.?>(.*?)</div>.*?', 3)
for $i=0 To UBound($aArray)-1
   $aArray[$i] = StringRegExpReplace($aArray[$i],"[^0-9]", "")
   if $aArray[$i]="" Then $aArray[$i]=0
Next
_ArrayDisplay($aArray)

Вроде то
Функции редактирования сообщений тут - это нечто
 
Автор
К

Коршун

Новичок
Сообщения
58
Репутация
1
рррреееееее
Спасибо, но дополнительный перебор массива не годится из-за возможности получить данные одним выражением.
Я подозреваю что использование условных подмасок может помочь, но не знаю как построить выражение.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
#include <Array.au3>
$STR = '<div class="list_product_prices">   <span class="nowrap">777</span></div>...<div class="list_product_prices"></div>...<div class="list_product_prices">   <span class="nowrap">888</span></div>'
$aArray = StringRegExp($STR, '.*?list_product_prices.*?(\d{0,})(?:</span>|</div>).*?', 3)
_ArrayDisplay($aArray)
 
Верх