Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> preg_match_all и регулярное выражение 
:(
    Опции темы
Zipo
Дата 30.3.2004, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 4.11.2003

Репутация: нет
Всего: 0



Замучался, неполучается написать регулярку, чтоб правильно пропарсить конструкцию
<!~int~text~!>
где int - любое число (целое)
text любой текст

preg_match_all ("|<!~(\d+)~(.[^(~!)]*)~!>|sU", $text, $match, PREG_PATTERN_ORDER);
походу что-то в этом роде, но почему-то исключение по 2 символам не проходит
т.е. ^(~!) - проблемка

подскажите плиз
PM MAIL   Вверх
Бекетов Роман aka Yaiu
Дата 30.3.2004, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.1.2004

Репутация: нет
Всего: 1



в PHP

PM MAIL   Вверх
korob2001
Дата 31.3.2004, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Если вопрос по Perl, то может это подойдёт?
Код

#!/usr/bin/perl -w
use strict;
use warnings;
my $str = 'sdf ds<!~125~text~!>fsdfsf';
$str =~ s/^(?:.*)?<!~(\d+)~([^~!]*)~!>(?:.*)$/$1=$2/g;
print $str, "\n";

Думаю что проблема в точке (.[^(~!)]*). Когда указываешь исключение, [^(~!)]* это значит все символы кроме !~(), а точка значит любой символ, ну почти ;). Другими словами, когда мы вводим конструкцию [^(~!)]*, то regexp устроит любой набор символов, прошу обратить внимание - любой (точку не напомнило?), кроме четырёх символов ()~!.
Попробуй из своего шаблона убери точку и жить станет легче.

Это сообщение отредактировал(а) korob2001 - 31.3.2004, 01:12


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Zipo
Дата 31.3.2004, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 4.11.2003

Репутация: нет
Всего: 0



да это вопрос по php, промахнулся малек....
Думал модератор перенесет.
Точка тут не причем. Ей в квадратных скобках указывается какие символы исключить. Только вот проблема в том что именно символы.

Это сообщение отредактировал(а) Zipo - 31.3.2004, 20:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.