IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Регулярные выражения - помощь! (https://www.imho.ws/showthread.php?t=69294)

hempsmoke 25.09.2004 01:09

Регулярные выражения - помощь!
 
товарищи, помогите с регулярными выражениями - хоть об стенку головой, ну не понимаю "ихний" синтаксис =). Есть куча книг, но все ограничиваются в описании функцией str_replace(); , которая изменяет [ b ] на < b >. а как вот, например, ссылку обрабатывает сервер
Код:

[ URL=http://путь title=ссылка ]тест[ /URL ]
и выдает уже на бумагу как набор нормального тэга?
Спасибо!

Fiery_Fenix 25.09.2004 04:00

Вложений: 1
Ты хотяб указал какие тебе нужны - POSIX или Perl-овые. Для перловых есть неплохое описание (см. аттач)

Ale 25.09.2004 04:58

"ссылку обрабатывает сервер" - это в смысле "обрабатывает скрипт"? На каком языке? Судя по str_replace() - на php?

php - http://www.php.net/manual/en/function.preg-match.php далее по ссылкам

perl - http://www.perldoc.com/perl5.8.0/pod/perlre.html

Sheryld 25.09.2004 16:23

уже давно придумали как автоматизировать сей процесс:

http://royo.is-a-geek.com/iserializable/regulator/ - но азы синтаксиса все равно знать необходимо...

p.s. в прогу встроена on-line библиотека по выражениям с удобным поиском.

Ale 25.09.2004 21:09

Sheryld
А вы пользовались этим? Я об него споткнулся где-то с пол-года назад, но особой нужды нет, поэтому не устанавливал. Всеж интересно узнать подробности от очевидца - насколь я понял regulator ориентирован на .NET Это не создает проблем с использованием в др языках? И вообще насколь оптимальны выражения им производимые?

Sheryld 25.09.2004 22:45

я пользуюсь им уже несколько месяцев. несмотря на то, что он написан на языке .NET(т.е. Windows required) и требует Framework, никакой привязки к .NET(кроме этого) я не обнаружил.

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

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

для C#|VB.NET есть всякие генераторы кода, компилирование в assembly и т.д. но опять-таки повторюсь, нико не заставляет ими пользоваться...

я пользуюсь тремя основными фитчами:

match
replace
split

исключительно для отладки регулярного выражения, которое я потом просто всталяю скажем в preg_match.

hempsmoke 26.09.2004 00:42

спасибо. сейчас ознакомлюсь со всем... язык php

Цитата:

Ale:
php - http://www.php.net/manual/en/function.preg-match.php далее по ссылкам
опять же не описан синтаксис.. что означают здесь
[/QUOTE]
preg_match("/\bweb\b/i", $str);
[QUOTE]

\b и /i догадаться можно конечно, но где об этом почитать? если не трудно, то все же черкните синтаксис для ссылки в первом моем посте...

и если есть на русском может кто знает... ;) а то техническую литературу читать - голову сломаешь =)

вот нашел по-русски http://ru.php.net/manual/ru/pcre.pattern.syntax.php

Psionic Vision 26.09.2004 01:00

hempsmoke
Вот, посмотри:
http://www.compdoc.by.ru/internet/php/strings_regexpr/
Может, это то, что надо.

hempsmoke 26.09.2004 01:15

ага только как там читать если там refresh срабатывает на заглавную...

Hubbitus 26.09.2004 14:02

http://www.php.net/manual/en/referen...ern.syntax.php

Разве здесь непонятно описаны основы?

Psionic Vision 26.09.2004 17:02

hempsmoke
Странно, у меня рефреш не срабатывает....
Попробуй загрузить страницу к себе на компьютер и там открыть.. (вырезак рефреш)

Ale 27.09.2004 02:27

Цитата:

Сообщение от hempsmoke
если не трудно, то все же черкните синтаксис для ссылки в первом моем посте...

Если я правильно понял - это не ввод, а вывод, т.е. предполагается что тщательной проверки синтаксиса пациента (на лишние пробелы в разных местах, правильность УРЛа итд) не требуется? Тада так должно сработать:
PHP код:

<?
$text = '[URL=http://путь title="ссылка засылка"]тест[/URL]';
$pattern = "\\[URL=([^\\[]*) title=\"([^title=]*)\"\\]([^\\[]*)\\[/URL\\]";
$replace = '<a href="\1" title="\\2">\\3</a>';
echo eregi_replace($pattern,$replace,$text);
?>

Обратите внимание

- перед/после бракетов [] нет пробелов

- значение title - в кавычках, бо они бывают многосложными


Часовой пояс GMT +4, время: 07:41.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.