ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

12.12.2009, 21:42
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Сообщение от Pashkela
Бред, имхо
PS: Сорри, но правда бред
ни одна регулярка не будет работать быстрее while и strlen, имхо в квадрате
Сообщение от rushter
При том что в моём коде,в данном месте легче,удобне и быстрее использовать рег.выражение.И не спрашивай почему.
Я прекрасно знаю что и где быстрее,скорость я замерял специально.+ ко всему файла с данным контентом для обработки нет,сам текст появляется после некой генерации и обработки текста.+ эту регулярку я смогу просто добавить к другой которая уже много другого ищет и заменяет на \n.
|
|
|

12.12.2009, 21:56
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
понял, может это наведет на подсказку:
PHP код:
<?php
$a = fopen('123.txt','r');
while (!feof($a)) {
$b = trim(fgets($a));
if (preg_match('#.{10}#',$b)) echo $b . "<br>";
}
?>
где в 123.txt - твой текст
|
|
|

12.12.2009, 21:57
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
PHP код:
$string = "\n".$string."\n";
$out = preg_replace("#\n(.{1,10})\n#","\n",$string);
echo $out;
|
|
|

12.12.2009, 21:57
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Сообщение от rushter
Хочу удалить строки длина которых меньше 10 строк.
re.sub - замена по рег. выражению.
re.sub('\n.{1,10}\n')',"\n",self.text)
Что не так ?
Не знаю но как в путоне с кавычками - '\n' и "\n" разные вещи или нет? Или в regexp это учитывается?
|
|
|

12.12.2009, 21:59
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
Не знаю но как в путоне с кавычками - '\n' и "\n" разные вещи или нет? Или в regexp это учитывается?
'\n' - строка \n
"\n" - перенос строки
а в шаблоне если ищещь строку \n, то экранируешь ее. /\n
|
|
|

12.12.2009, 22:00
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Сообщение от 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;
?>
|
|
|

12.12.2009, 22:04
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Сообщение от LStr1ke
'\n' - строка \n
"\n" - перенос строки
а в шаблоне если ищещь строку \n, то экранируешь ее. /\n
спасибо конечно но я не про php и это как бы подсказка rushter.
|
|
|

12.12.2009, 22:04
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
rushter
Я не пойму, тогда в чем проблема? Если твоя регулярка работает, то к чему тема?
Твоя регулярка ищет количество имволов между "\n" и "\n", если и работает, то. Первую строку он не распознает, т.к. она начальная и перед нею нету знака переноса строки, что соответсвенно и с конечной строкой.
|
|
|

12.12.2009, 22:09
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме: 9257858
Репутация:
979
|
|
Сообщение от LStr1ke
rushter
Я не пойму, тогда в чем проблема? Если твоя регулярка работает, то к чему тема?
Твоя регулярка ищет количество имволов между "\n" и "\n", если и работает, то. Первую строку он не распознает, т.к. она начальная и перед нею нету знака переноса строки, что соответсвенно и с конечной строкой.
.
Как в сказке! задумчиво сказала Зенита, с трудом заставив себя отойти от клетки.
По дороге вы всё объясните мне? Правда? Конечно! С удовольствием! заторопился юноша, всё это время деликатно молчавший.
Он взял ее под руку, и товарищи ее по экспедиции, видевшие, как они шли по улице, решили, что она встретила здесь своего старого друга, так просто и хорошо они разговаривали.
Всё дело.
Простите, перебила Зенита.
А как вас зовут? Почти как вашего оленя: Олешком.
Или, если всерьез, Олегом.
разве больше 30 ?
Скорее это особенность замены по рег.выражению т.к следующая строка после "Все дело тоже" меньше 30.
Последний раз редактировалось rushter; 12.12.2009 в 22:15..
|
|
|

12.12.2009, 22:19
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
хммм =\
Вообщем такая тема, если было 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 символов, либо думать над шаблоном
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|