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

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

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

 

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

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

тема: Найти актуальную последовательность
 
 автор: winflip   (21.07.2009 в 11:34)   письмо автору
 
 

Добрый день. Обращался на форум уже, но ответа так и не получил. В общем помогите написать regular expression )))). Надо найти в строке отрывок состоящий из 70 символов, в котором наиболее часто встречается пара <b>какое то слово</b>. Строка может иметь произвольную длину. И ещё надо, чтобы отрывок не начигался и не кончался <b> или </b>. Из-за этого можно расширить отрывок. Например в 80 символов.

  Ответить  
 
 автор: Жмурик   (22.07.2009 в 04:08)   письмо автору
 
   для: winflip   (21.07.2009 в 11:34)
 

Вспомни определение последовательноси aka варианты. И всё будет ясно!

  Ответить  
 
 автор: winflip   (22.07.2009 в 10:18)   письмо автору
 
   для: Жмурик   (22.07.2009 в 04:08)
 

Ну я же не буду перебирать все варианты, я хочу регулярным выражением это сделать

  Ответить  
 
 автор: Жмурик   (22.07.2009 в 18:05)   письмо автору
 
   для: winflip   (22.07.2009 в 10:18)
 

Странный ты какой. И нельзя все варианты перебрать, ведь натуральный ряд индуктивен.

  Ответить  
 
 автор: winflip   (22.07.2009 в 19:35)   письмо автору
 
   для: Жмурик   (22.07.2009 в 18:05)
 

Не очень Вас понимаю

  Ответить  
 
 автор: Жмурик   (22.07.2009 в 20:19)   письмо автору
 
   для: winflip   (22.07.2009 в 19:35)
 

Понимаете, существует изоморфное вложение множества байт с введеной на нём операцией конкатенации во множество циклической группы Z_256(+) = <1> с введенной на нём операцией сложения по модулю 256. Я практически показал решение. Действуйте!

  Ответить  
 
 автор: winflip   (23.07.2009 в 10:27)   письмо автору
 
   для: Жмурик   (22.07.2009 в 20:19)
 

> Я практически показал решение.
Ну да практически)))
Теперь совсем не понял ничего, я всего лишь попросил помочь написать регулярное выражение. А вы мне о каком то изоморфном множестве байт

  Ответить  
 
 автор: Trianon   (23.07.2009 в 11:32)   письмо автору
 
   для: winflip   (23.07.2009 в 10:27)
 

Переведу на руский, хотя и неуверен, что это пойдет на пользу.
Где Вы прочли, что регулярные выражения можно применять для перебора подстрок?

  Ответить  
 
 автор: winflip   (23.07.2009 в 14:39)   письмо автору
 
   для: Trianon   (23.07.2009 в 11:32)
 

В том то и дело что я не собираюсь перебирать.
m/([\w]+\<b\>(.*?)\<\/b\>[\w]+)+/is

Что то вроде такого выражения мне надо, но только ограничиться 70 символами. Я вообще не знаю что делать

  Ответить  
 
 автор: Trianon   (23.07.2009 в 14:47)   письмо автору
 
   для: winflip   (23.07.2009 в 14:39)
 

а где здесь реализовано "наиболе часто встречается"?
Это регулярками Вы не сделаете.

ограничение в 70 символов задается так (.{70}) или так (.{70:}) или так (.{:70})
в зависимости от того, в какую сторону ограничение.

  Ответить  
 
 автор: *******   (24.07.2009 в 01:14)
 
   для: winflip   (23.07.2009 в 14:39)
 

Найти из всех совпадений одно самое нужное можно анализируя все возможные варианты

#<? perl
#!/usr/bin/perl -W 
print "Content-Type: text/plain\n\n";

my $txt '<b>winflip</b>   (21.06.2009 в 12:46) 
  .......<b>winflip</b>
 Язык программирования perl.
 ........
2) Найти отрывок состоящий из 70 символов, в котором наиболее часто встречается пара
Заранее благодарен.
,,,,,,,,,,,,
<b>winflip</b>   (21.06.2009 в 12:48)
;;;;;;;;;;;;;;;;;;;;
<b>winflip</b>   (21.06.2009 в 14:59)
:::::::::::::::::::::::::::::::::::;;::::::::::
<b>winflip</b>   (21.06.2009 в 12:48)
С первым разобрался    
...................................
........................
'
;
my @starts, @stops;

while (
$txt =~ /<b>.+?<\/b>/gcs)
{
    print $-[
0] .'-'. $+[0] ."\n";
    
push @starts, $-[0];
    
push @stops,  $+[0];
}
    print 
"\n";

@list = 
sort({70 $b-$a || $b>$a} @starts); 
print 
join(' ', @starts) . "\n";
print 
join(' ', @stops) . "\n";

  Ответить  
 
 автор: *******   (24.07.2009 в 01:26)
 
   для: winflip   (23.07.2009 в 14:39)
 

>@list = sort({70 > $b-$a || $b>$a} @starts);
это я так , просто забыл стереть :)

  Ответить  
 
 автор: winflip   (24.07.2009 в 18:14)   письмо автору
 
   для: *******   (24.07.2009 в 01:26)
 

Спасибо, огромное правда ошибка была, в регулярном надо было сэкранировать /.

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

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