Что нового

Помогите подобрать регулярное выражение

andriy111

Новичок
Сообщения
58
Репутация
0
Привет всем!
У меня такая ситуация:
Код:
<table class="table table-bordered"> <td colspan="2" class="td-header"> TEXT </td> </tr> <tr><td colspan="2" class="td-header"> TEXT </td> </tr> <tr><td colspan="2"> TEXT </td> </tr> <tr></table>
Элемент страницы имеет такой вид, но количество <td colspan="2" class="td-header"> TEXT </td> в таблице разное.

Как мне отправить все элементы ТЕХТ в массив в независимости от их количества.

Пробовал
Код:
$td_blocks = StringRegExp($stroka, '<td colspan="2" class="td-header">(.*?)<\/td> <\/tr><tr> ',3)

Но он берет по несколько элементов ТЕХТ в один элемент массива!
Помогите подобрать регулярное выражение, спасибо!
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Код:
#include <Array.au3>
$Text='<table class="table table-bordered"> <td colspan="2"' & _
'class="td-header"> TEXT </td> </tr> <tr><td colspan="2" class="td-header">' & _
'TEXT </td> </tr> <tr><td colspan="2"> TEXT </td> </tr> <tr></table>'

$asResult = StringRegExp($text, '(\w*)(?: </td>)', 3)
If @error == 0 Then _ArrayDisplay($asResult)
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
ra4o сказал(а):
Код:
#include <Array.au3>
$Text='<table class="table table-bordered"> <td colspan="2"' & _
'class="td-header"> TEXT </td> </tr> <tr><td colspan="2" class="td-header">' & _
'TEXT </td> </tr> <tr><td colspan="2"> TEXT </td> </tr> <tr></table>'

$asResult = StringRegExp($text, '([\w]*)(?: </td>)', 3)
If @error == 0 Then _ArrayDisplay($asResult)

Спасибо за помощь, я допустил ошибку что не скинул оригинальный код.
Поэтому и не работает на оригинальном коде

Оригинал :
<table class="table table-bordered"> <tr> <td colspan="2" class="td-header"> Ведомости </td> </tr> <tr> <td> номер </td> <td> 457778422110:74:000:0058 </td> </tr> <tr> <td> назначение </td> <td> 01.01 Для </td> </tr> <tr> <td> Форма </td> <td> Право </td> </tr> <tr> <td> Площа </td> <td> 0.6265 га </td> </tr> <tr> <td> Место </td> <td> Место </td> </tr> <tr> <td colspan="2" class="td-header"> Ведомости
<span style="font-size: 10px;">* актуальная </span> </td> </tr> <tr> <td> ПИП </td> <td> Подворная </td> </tr> <tr> <td> Дата </td> <td> 20.09.2016 </td> </tr> <tr> <td> Номер (номер) </td> <td> 16548454 </td> </tr> <tr> <td> Орган </td> <td> Нотариус </td> </tr><tr> <td colspan="2" class="td-header"> Ведомости </td> </tr> <tr> <td> Вид </td> <td> Право </td> </tr> <tr> <td> Наименование </td> <td> Общество </td> </tr> <tr> <td> Код </td> <td> 39219007 </td> </tr> <tr> <td> Дата </td> <td> 29.08.2014 </td> </tr> <tr> <td> Номер </td> <td> 6852448 </td> </tr> <tr> <td> Орган </td> <td> служба </td> </tr> <tr><td colspan="2"></td></tr><tr> <td> Вид </td> <td> Право </td> </tr> <tr> <td> особености </td> <td> общество </td> </tr> <tr> <td> Код </td> <td> 39219007 </td> </tr> <tr> <td> Дата </td> <td> 29.08.2014 </td> </tr> <tr> <td> Номер </td> <td> 15315724 </td> </tr> <tr> <td> Орган </td> <td> области </td> </tr> <tr><td colspan="2"></td></tr><tr> <td> Вид </td> <td> Право </td> </tr> <tr> <td> андомоство </td> <td> общество </td> </tr> <tr> <td> Код </td> <td> 30568554 </td> </tr> <tr> <td> Дата </td> <td> 05.07.2016 </td> </tr> <tr> <td> Номер </td> <td> 15315772 </td> </tr> <tr> <td> Орган </td> <td> области </td> </tr></table>

Помогите пожалуйста, спасибо!
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
247
Может так :
Код:
$asResult = StringRegExp($text, '([\d\wА-яЁё:. ]*)(?: </td>)', 3)
If @error == 0 Then _ArrayDisplay($asResult)
 
Автор
A

andriy111

Новичок
Сообщения
58
Репутация
0
ra4o сказал(а):
Может так :
Код:
$asResult = StringRegExp($text, '([\d\wА-яЁё:. ]*)(?: </td>)', 3)
If @error == 0 Then _ArrayDisplay($asResult)

Спасибо!
А какое регулярное выражение для того чтобы отобрать в массив строго то что между всеми <td colspan="2" и <td colspan="2" вместе со всеми </td> <td> внутри?
Спасибо!


Добавлено:
Сообщение автоматически объединено:

Я воспользовался таким регулярным выражением
Код:
$td_blocks = StringRegExp($stroka, '<td(.*?)<td ',3)



Добавлено:
Сообщение автоматически объединено:

Еще раз привет всем.
Таки не получилось сделать универсально регулярное выражение которое бы нормально работало.
Может кто поможет!
Спасибо!
 
Верх