HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #881  
Старый 12.12.2009, 21:42
rushter
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме:
9257858

Репутация: 979


Отправить сообщение для rushter с помощью ICQ
По умолчанию

Цитата:
Сообщение от Pashkela  
Бред, имхо

PS: Сорри, но правда бред

ни одна регулярка не будет работать быстрее while и strlen, имхо в квадрате
Цитата:
Сообщение от rushter  
При том что в моём коде,в данном месте легче,удобне и быстрее использовать рег.выражение.И не спрашивай почему.
Я прекрасно знаю что и где быстрее,скорость я замерял специально.+ ко всему файла с данным контентом для обработки нет,сам текст появляется после некой генерации и обработки текста.+ эту регулярку я смогу просто добавить к другой которая уже много другого ищет и заменяет на \n.
__________________
Blog
 
Ответить с цитированием

  #882  
Старый 12.12.2009, 21:56
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

понял, может это наведет на подсказку:

PHP код:
<?php
$a 
fopen('123.txt','r');
while (!
feof($a)) {
   
$b trim(fgets($a));
   if (
preg_match('#.{10}#',$b)) echo $b "<br>";
}
?>
где в 123.txt - твой текст
 
Ответить с цитированием

  #883  
Старый 12.12.2009, 21:57
LStr1ke
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме:
1455812

Репутация: 150
По умолчанию

PHP код:
$string "\n".$string."\n";
$out preg_replace("#\n(.{1,10})\n#","\n",$string);
echo 
$out
 
Ответить с цитированием

  #884  
Старый 12.12.2009, 21:57
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

Цитата:
Сообщение от rushter  
Хочу удалить строки длина которых меньше 10 строк.
re.sub - замена по рег. выражению.
re.sub('\n.{1,10}\n')',"\n",self.text)
Что не так ?
Не знаю но как в путоне с кавычками - '\n' и "\n" разные вещи или нет? Или в regexp это учитывается?
 
Ответить с цитированием

  #885  
Старый 12.12.2009, 21:59
LStr1ke
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме:
1455812

Репутация: 150
По умолчанию

Цитата:
Не знаю но как в путоне с кавычками - '\n' и "\n" разные вещи или нет? Или в regexp это учитывается?
'\n' - строка \n
"\n" - перенос строки
а в шаблоне если ищещь строку \n, то экранируешь ее. /\n
 
Ответить с цитированием

  #886  
Старый 12.12.2009, 22:00
rushter
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме:
9257858

Репутация: 979


Отправить сообщение для rushter с помощью ICQ
По умолчанию

Цитата:
Сообщение от LStr1ke  
PHP код:
$string "\n".$string."\n";
$out preg_replace("#\n(.{1,10})\n#","\n",$string);
echo 
$out
Вот часть текста,спрашивалось зачем заново писать мою регулярку на другом языке ?
Сохраняйте в unix формате.
Цитата:
<?php
$string = ".
Как в сказке! задумчиво сказала Зенита, с трудом заставив себя отойти от клетки.
Но мне пора домой.
По дороге вы всё объясните мне? Правда? Конечно! С удовольствием! заторопился юноша, всё это время деликатно молчавший.
Он взял ее под руку, и товарищи ее по экспедиции, видевшие, как они шли по улице, решили, что она встретила здесь своего старого друга, так просто и хорошо они разговаривали.
Объяснение это было недлинно.
Всё дело.
начал юноша.
Простите, перебила Зенита.
А как вас зовут? Почти как вашего оленя: Олешком.
Или, если всерьез, Олегом.";
$out = preg_replace("#\n(.{1,20})\n#","\n",$string);
echo $out;
?>
__________________
Blog
 
Ответить с цитированием

  #887  
Старый 12.12.2009, 22:04
PaCo
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме:
1754802

Репутация: 380
По умолчанию

Цитата:
Сообщение от LStr1ke  
'\n' - строка \n
"\n" - перенос строки
а в шаблоне если ищещь строку \n, то экранируешь ее. /\n
спасибо конечно но я не про php и это как бы подсказка rushter.
 
Ответить с цитированием

  #888  
Старый 12.12.2009, 22:04
LStr1ke
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме:
1455812

Репутация: 150
По умолчанию

rushter
Я не пойму, тогда в чем проблема? Если твоя регулярка работает, то к чему тема?
Твоя регулярка ищет количество имволов между "\n" и "\n", если и работает, то. Первую строку он не распознает, т.к. она начальная и перед нею нету знака переноса строки, что соответсвенно и с конечной строкой.
 
Ответить с цитированием

  #889  
Старый 12.12.2009, 22:09
rushter
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме:
9257858

Репутация: 979


Отправить сообщение для rushter с помощью ICQ
По умолчанию

Цитата:
Сообщение от LStr1ke  
rushter
Я не пойму, тогда в чем проблема? Если твоя регулярка работает, то к чему тема?
Твоя регулярка ищет количество имволов между "\n" и "\n", если и работает, то. Первую строку он не распознает, т.к. она начальная и перед нею нету знака переноса строки, что соответсвенно и с конечной строкой.
Цитата:
.
Как в сказке! задумчиво сказала Зенита, с трудом заставив себя отойти от клетки.
По дороге вы всё объясните мне? Правда? Конечно! С удовольствием! заторопился юноша, всё это время деликатно молчавший.
Он взял ее под руку, и товарищи ее по экспедиции, видевшие, как они шли по улице, решили, что она встретила здесь своего старого друга, так просто и хорошо они разговаривали.
Всё дело.
Простите, перебила Зенита.
А как вас зовут? Почти как вашего оленя: Олешком.
Или, если всерьез, Олегом.
Цитата:
Всё дело.
разве больше 30 ?
Скорее это особенность замены по рег.выражению т.к следующая строка после "Все дело тоже" меньше 30.
__________________
Blog

Последний раз редактировалось rushter; 12.12.2009 в 22:15..
 
Ответить с цитированием

  #890  
Старый 12.12.2009, 22:19
LStr1ke
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме:
1455812

Репутация: 150
По умолчанию

Цитата:
разве больше 20 ?
хммм =\
Вообщем такая тема, если было 2 строки меньше 20 символов одна - за другой, то вырезается только одна. Видимо замена на \n мешает сразу вырезать сл. строку.
Тоесть если между этими строками вставить еще одну больше 20 символов, то в один раз все вырезается.
Например:
PHP код:
$out preg_replace("#\n(.{1,20})\n#","\n",$string); 
$out preg_replace("#\n(.{1,20})\n#","\n",$out); 
Успешно вырежет оставшуюся (забытую) строку.

Но если их будет больше 2х подряд, то проблема. Вообщем нужен или цикл, каждый раз проверя еслть ли там строки меньше 20 символов, либо думать над шаблоном
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 6762 17.06.2010 21:23



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ