Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Составить регулярное выражение, чтобы вытащить из кода последние три слова
 
 автор: dump   (27.04.2010 в 15:56)   письмо автору
 
 

Подскажите как составить регулярное выражение, чтобы вытащить из кода последние три слова:
[CODE]
<h3>Past tense</h3>
<table border=1>
<tr>
<th align=left>Masculine</th>

<th align=left>Feminine</th>
<th align=left>Neutral</th>
<th align=left>Plural</th>
</tr>
<tr>
<td align=left>бе'гал</td>
<td align=left>бе'гала</td>
<td align=left>бе'гало</td>
<td align=left>бе'гали</td>
</tr>

</table>
[/CODE]
Вот чтобы вытащить слова бе'гал,бе'гала, бе'гало.

  Ответить  
 
 автор: big-trot   (28.04.2010 в 22:51)   письмо автору
 
   для: dump   (27.04.2010 в 15:56)
 

Вы должны понять, что регулярные выражения это не какой-то интеллектуальный механизм, который поймет какие вам нужны последние три слова, а тупой автомат которому надо чётко прописать алгоритм действия при поиске нужного совпадения. В вашем примере последние три слова это
</tr></table>[/CODE]
. Сформулируйте задачу более строго. Может появиться и решение вашей задачи.

  Ответить  
 
 автор: asptema   (10.05.2010 в 00:49)   письмо автору
 
   для: dump   (27.04.2010 в 15:56)
 

регексп красотой не отличается, но тем не менее у меня работает.
use v5.10;
$text = "one  two three five six";
say join " | ", $1, $2, $3 if ($text =~ /\s*(\w+)\s*\s*(\w+)\s*\s*(\w+)\s*$/);

написано на Perl и ниибет!
--------------------
да, для Ваших запросов добавьте хтмл-теги <td.....>.....</td> вокруг этого ужаса :)

  Ответить  
 
 автор: imustang   (12.05.2010 в 14:35)   письмо автору
 
   для: dump   (27.04.2010 в 15:56)
 

логика простая, тут у тебя эти три слова в конце таблицы, значит надо исходить из конца строки ... а в конце у нас ... </td></tr></table>

регекс будет такой,

preg_match("#<td.*?>(.*?)<\/td>\s*?<td.*?>(.*?)<\/td>\s*?<td.*?>(.*?)</td>\s*?</tr>\s*?</table>#is", $text, $array_data

// все что в последних трех <td> ..... </td> будет храниться в этих трех переменных
$array_data[1]; // = бе'гала
$array_data[2]; // = бе'гало
$array_data[3]; // = бе'гали

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования