Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > Perl
Перезагрузить страницу При работе regex - не видит именованную группу
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
senglory senglory вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.11.2004
Thumbs up При работе regex - не видит именованную группу - 12.08.2009, 04:00

Код:
# Region
<tr>
\s*<td\s+class="grey11">Region:</td>\s*
<td\s+class="b11\s+b">(?<Region>.+?(?=</td>))</td>
\s*
</tr>
\s*

</table>
\s*

#Optional AD
(
<div\s+class="wid342\s+fl\s+padtop15">
\s*
<div\s+class="linkicon\s+listicon\s+lh16">
\s*
<a(?:[^>]*?)>
(?:.+?)</a>\s*</div>\s*</div>
){0,1}

</div>
\s*

(
# Amenities
<div\s+class="wid342\s+fl\s+mtop10(?:[^>]*?)>
\s*
<div\s+class="pad10">
(?:.+?)
<ul\s+class="chkbox">
(?<Amenities>.+?)[/list]\s*
</div>
){0,1}



(?:.+?)

#Extra
(
<div\s+class="b10\s+lh16\s+vpad10">
\s*(?<Extra>.+?)\s*
</div>
){0,1}


Цитата:
<tr>
<td class="grey11">Drive</td>
<td class="b11">Front</td>
</tr>
<tr>
<td class="grey11">Transm</td>
<td class="b11 b">Mech</td>
</tr>
<tr>
<td class="grey11">Intr</td>
<td class="b11">Leather</td>
</tr>

<tr>
<td class="grey11">COND/td>
<td class="b11">USED</td>
</tr>
<tr>
<td class="grey11">Region/td>
<td class="b11 b">QQQQQQQQQQQQQ</td>
</tr>
</table>
<div class="wid342 fl mtop10" style="background:#F5F5F5">
<div class="pad10">
<h4 class="darkred">What's inside</h4>
<ul class="chkbox">
<li class="par">
  • ABS
  • Acs
  • HUD
  • Immo


    <li class="par">
    • Chairs
    • Alarm
</div>
</div>
<div class="wid342 fl oh">
<p class="vmargin10">
<h4>Extra info</h4>
<div class="b10 lh16 vpad10">
Good condition. Assembled in ---------[/quote]


Группа Extra опциональна, т.е. есть не всегда. Сeйчас этот регекс возвращает для нее пустое значение. Почему и как исправить?
Ответить с цитированием
  (#2 (permalink)) Старый
NoD NoD вне форума
Member
 
Сообщений: 29
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 21.06.2006
По умолчанию 08.10.2009, 13:20

Никак не исправишь, число возвращаемых захваченных участков всегда равно максимально возможному. И возвращает на самом деле не пустое значение, а undef

UPD хотя исправишь

Код:
my @result = grep { defined } $text =~ /regexp/;
так отсеятся undef'ы
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки,удалить группу из двух определенных символов glebochek Pascal 2 09.12.2011 01:06
Вакансия:Разработчик в группу поддержки .Net C# leto Работа 0 05.09.2007 19:51
вакансия:Разработчик в группу поддержки .Net C# leto Работа 0 13.08.2007 20:11
ВАКАНСИЯ:Разработчик в группу поддержки .Net C# leto Работа 0 06.08.2007 19:24
вакансия: Разработчик в группу поддержки .Net C# leto Работа 0 03.08.2007 18:52
Определить рабочую группу по IP Fuzz1986 Сетевое программирование 1 06.06.2006 12:14
Как узнать рабочую группу если есть имя хоста в сети Yarl Сетевое программирование 0 15.09.2005 11:12
Объявляется официальное открытие набора в группу “iNT3” Anonymous Некоммерческие проекты 0 17.08.2004 10:38
Погасить группу переключателей какую функцию использовать imported_@LeX Visual C++ 4 14.04.2004 21:54
Как заменить группу из нечетного количества нулей на один Anonymous Вопросы начинающих программистов 5 10.01.2004 09:41



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов