Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl - Регулярные выражения / Regexpы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6

Открыть новую тему     Написать ответ в эту тему

OLEX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Смежная тема
регулярные выражения в Perl
 
 
Было

Всего записей: 3591 | Зарегистр. 09-07-2002 | Отправлено: 03:52 30-08-2005 | Исправлено: Cheery, 18:37 27-02-2008
Brodyaga



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Это "сборник рецептов" как я понимаю(серия книг), мне бы нужно исключительно по регуляркам, остальное мне не нужно

----------
Damn Metal

Всего записей: 2713 | Зарегистр. 07-01-2006 | Отправлено: 23:25 07-08-2006
Smle

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно запретить поиск меньше чем по 3м символам.  
Знаю что .* означает здесь ноль и больше символов. Регулярные отношения изучаю;)  
 
#$text =~ s/\n/<br>/sg;  
#$text =~ s/\[b\]/<b>/sg;  
#$text =~ s/\[\/b\]/<\/b>/sg;  
$text =~ s/\[quote\]/Цитата:/sg;  
$text =~ s/\[\/quote\]//sg;  
 
$text =~ s/\[url\](.*?)\[\/url\]//sg;  
$text =~ s/\[url\=(.*?)\](.*?)\[\/url\]//sg;  
 
$text =~ s/\[img\](.*?)\[\/img\]//sg;  
$text =~ s/\[img\=(.*?)\](.*?)\[\/img\]//sg;




за флуд /Cheery/

Всего записей: 10 | Зарегистр. 05-10-2006 | Отправлено: 13:59 10-10-2006 | Исправлено: Cheery, 14:55 10-10-2006
alpha6

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smle
Так по идее надо :
$text =~ s/\[url\=(.{3,})\](.{3,})\[\/url\]//sg;

Всего записей: 59 | Зарегистр. 10-09-2005 | Отправлено: 23:03 10-10-2006
CheRt



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кстати, о птичках, все парные таги, как то , [quote][/quote] лучше и обрабатывать парами
 
Правильнее наверное так: $text =~ s/\[url\=([^\]]{3,})\]([^\[]{3,})\[\/url\]//sg;

----------
В огне бода нет и не будет!
До встречи в СССР 2.0!

Всего записей: 1118 | Зарегистр. 14-12-2001 | Отправлено: 23:48 10-10-2006
pusiyjan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может ли из-за разных кодировок не отрабатываться if ?
т.е. задача следующая  
есть переменная $otdel передаваемая из формы есть переменная $otdel_new выбираемая из базы.
так вот ставлю сравнение этих переменных

Код:
if ($otdel eq $otdel_new) {действие1} else {действие2}

и у меня всегда получается ТОЛЬКО действие2? хотя я печатаю эти две переменные - ОНИ ОДИНАКОВЫ, в чем проблемма, в кодировках может?
 
Добавлено:
Разобрался с проблемой, просто при передачи из формы у меня еще добавлялся ненужный мне пробел, и при этом сравнение никак не получалось

Всего записей: 823 | Зарегистр. 17-12-2003 | Отправлено: 13:56 20-10-2006
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем.
Объясните, плиз, что делает следующий код:

Код:
 
 
    $post =~ s/\<p>/<br><br>/isg;
    $post =~ s|\[\[|\{\{|g;
    $post =~ s|\]\]|\}\}|g;
    $post =~ s|\n\[|\[|g;
    $post =~ s|\]\n|\]|g;
    $post =~ s|<br>| <br>|g;
 

 
 
Добавлено:
первая строка понятно, а вот дальше - нет

Всего записей: 5396 | Зарегистр. 20-06-2003 | Отправлено: 16:54 26-11-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smog

Цитата:
первая строка понятно, а вот дальше - нет

аналогично все.. в регулярках разделителями необязательно использовать / - можно и |

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:53 26-11-2007
Oleg_de



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
$post =~ s/\<p>/<br><br>/isg;  

и что делает эта строчка?


----------
Германия глазами переселенцев и мигрантов ...

Всего записей: 336 | Зарегистр. 03-09-2001 | Отправлено: 11:05 28-11-2007
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oleg_de

Цитата:
и что делает эта строчка?  

заменяет в переменной $post все <p> на <br><br> без учета регистра и перевода строк
 
Добавлено:
Только зачем в строке первое экранирование < ?

----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5396 | Зарегистр. 20-06-2003 | Отправлено: 12:02 28-11-2007 | Исправлено: Smog, 12:03 28-11-2007
Smog



Жираф-Сибиряк
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите регулярку, никак не могу додуматься:
допустим, $mes=" ля [b]жирный1[/b]ляя [no] Привет.....ля-ля-ля [b]жирный2[/b] ля  ля[/no]"
Требуется
в строке $mes заменить [b](...)[/b] парой только не внутри [no] [/no]  на <b>(...)</b>
 
 
Вижу один вариант - все символы "[" и  "]",  находящиеся внутри [no] [/no]  заменить, например на "{{" и "}}", потом заменить все  [b](...)[/b] как нужно, а потом обратную замену на символы "[" и  "]" по всему тексту сделать. Но не могу придумать регулярку
Помогите, плиз?

----------
Клиент форума Ru-board (Rb_client)-с предварительной поддержкой ру-борда!
Требуются бета-тестеры!
Обновление v0.0.3.6 (21.04.08)!

Всего записей: 5396 | Зарегистр. 20-06-2003 | Отправлено: 00:15 07-12-2007 | Исправлено: Smog, 00:17 07-12-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smog

Цитата:
Вижу один вариант - все символы "[" и  "]",  находящиеся внутри [no] [/no]  заменить, например на "{{" и "}}", потом заменить все  [b](...)[/b] как нужно, а потом обратную замену на символы "[" и  "]" по всему тексту сделать

либо так, либо заменить все, а потом заменить обратно внутри no

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:02 07-12-2007 | Исправлено: Cheery, 01:04 07-12-2007
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!
В регэкспах разбираюсь оч. плохо, задача следующая.
 
Есть какой текст (знаков 500-2000, не суть). В нем встречается выражение [CaT].  
 
1) Нужно порезать весь текст, что после [CaT] и сам [CaT].
2) Нужно просто убрать [CaT].
 
Т.е. по сути это - новости "под катом". В первом случае вывод краткого описания, во втором - вывод полной новости.
 

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 01:51 14-01-2008 | Исправлено: YourAdmin, 01:56 14-01-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YourAdmin

Цитата:
1) Нужно порезать весь текст, что после [CaT] и сам [CaT].  

@data = split(/\[Cat\]/, $text);
потом берем первый элемент из массива

Цитата:
2) Нужно просто убрать [CaT].  

$text =~ s/\[CaT\]//g;
 
ps: не проверял


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:24 14-01-2008
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
 
Спасибо, помогло. ) Что-то протупил, мог и сам так сделать, запамятовал )
 

Код:
($tcut,$tpcut) = split(/\[CUT\]/, $text);  

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 03:13 14-01-2008
Apart

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Правильнее наверное так: $text =~ s/\[url\=([^\]]{3,})\]([^\[]{3,})\[\/url\]//sg;

 
А что будет выдаваться на экран пользователю в этом случае? Не лучше ли length использовать? if length <3 then print "Количество символов в поисковой фразе должно быть не менее 3. Попробуйте еще раз. BACK"

Всего записей: 409 | Зарегистр. 10-05-2005 | Отправлено: 13:58 14-01-2008
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сейчас при выводе из БД текст обрабатывается следующей функцией (символы "<" и ">" в базе уже заменены на "&lt"; "&gt;")
 

Код:
 
sub processText {
 my ($domain,$text) = @_;
 $text =~ s/\[img\](.+?)\[\/img\]/<img src=\"$1\" border=\"0\">/isg;
 $text =~ s/\[b\]/<b>/isg;
 $text =~ s/\[\/b\]/<\/b>/isg;
 $text =~ s/\[i\]/<i>/isg;
 $text =~ s/\[\/i\]/<\/i>/isg;
 $text =~ s/\[u\]/<u>/isg;
 $text =~ s/\[\/u\]/<\/u>/isg;
 $text =~ s/\[url\](\S+?)\[\/url\]/<a href=\"$1\"\ target=\"_blank\">$1<\/a>/isg;
 $text =~ s/\[url=http:\/\/(\S+?)\]/<a href=\"http:\/\/$1\"\ target=\"_blank\">/isg;
 $text =~ s/\[url=(\S+?)\]/<a href=\"http:\/\/$1\"\ target=\"_blank\">/isg;
 $text =~ s/\[\/url\]/<\/a>/isg;
 $text =~ s/  /&nbsp;&nbsp;/g;
 return $text;
}
 

 
1) При выражении  

Код:
[im g]http://host/uploads/9/f/9f23773ec0f99edf5fe293496fb05868.jpg[/im g]
im g - слитно

выводиться, соответственно

Код:
<img src="http://host/uploads/9/f/9f23773ec0f99edf5fe293496fb05868.jpg">

 
Нужно, чтобы при выражении  

Код:
[im g]http://host/uploads/9/f/9f23773ec0f99edf5fe293496fb05868_small.jpg[/im g]
im g - слитно

 
выводилось что-то типа

Код:
<a href="http://host/uploads/9/f/9f23773ec0f99edf5fe293496fb05868.jpg" target="_blank"><img src="http://host/uploads/9/f/9f23773ec0f99edf5fe293496fb05868_small.jpg">
<br>Кликните для просмотра в полный размер</a>

 
2) Хотелось бы сделать такой же [ сode ], как на форуме.
 

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 18:48 27-02-2008 | Исправлено: YourAdmin, 18:53 27-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YourAdmin
смеетесь? по поводу путей у картинок -
Цитата:
http://host/

если хотите привести пример кода - используйте их в тагах [no] и [/no]

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:52 27-02-2008 | Исправлено: Cheery, 18:53 27-02-2008
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Извините, не знал, в следующий раз буду так делать.
 

Цитата:
2) Хотелось бы сделать такой же [ сode ], как на форуме.

 
Значит, хотелось бы сделать такой же [ no ], как и на форуме.

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 18:55 27-02-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YourAdmin
BBcode на своём сайте
там регулярки на php, но очень похожи
 
 
Добавлено:
и в чем проблема с картинками?
$text =~ s/\[img\](.+?)\[\/img\]/<img src=\"$1\" border=\"0\">/isg;  
все же очевидно, как исправить правую часть
$text =~ s/\[img\](.+?)\[\/img\]/<a href=\"$1\" target=\"_blank\"><img src=\"$1\"><br>Кликните для просмотра в полный размер<\/a>/isg;  
 
 
всего то чуть чуть подумать

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:00 27-02-2008
YourAdmin



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery
Извини, наверное плохо объяснил.
Нужно выводить ссылку на полноразмерное изображение только если в адресе картинки присутствует *_small.*

Всего записей: 156 | Зарегистр. 08-12-2001 | Отправлено: 22:21 27-02-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6

Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl - Регулярные выражения / Regexpы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru