Forum Webscript.Ru

Программирование => Perl => Тема начата: Отец Никон от 08 Января 2003, 21:29:03

Название: Наверно, распространенный вопрос...
Отправлено: Отец Никон от 08 Января 2003, 21:29:03
Привет всем.
У меня такая задача: есть форум. И при отсылке сообщения
надо проверить, закрыты ли в нем все тэги.
Подскажите, пожалуйста, как
Название: Проверка тэгов в сообщении форума
Отправлено: Chs от 08 Января 2003, 22:32:35
perldoc perlre
Теги какого вида?
Если [ x ] [ / x ], то примерно так

my $mess1 = $mess;
while ($mess1 =~ s|\\[(\\w)\\]([^\\[\\]]*?)\\[\\/\\1]|$2|g) {};
print "Теги не закрыты или ошибка в тэгах"
  if (($mess1 =~ m|\\[\\w\\]|) || ($mess1 =~ m|\\[\\/\\w\\]|));
Название: Проверка тэгов в сообщении форума
Отправлено: Отец Никон от 09 Января 2003, 01:19:36
Спасибо, а можно как-то это приспособить и для тэгов <*> ? Замена соответствующих символов в этом коде не помогает.
Извиняюсь, но я в рег. выр-я никак пока не въеду.
Название: Проверка тэгов в сообщении форума
Отправлено: Chs от 09 Января 2003, 09:11:23
Цитировать
Спасибо, а можно как-то это приспособить и для тэгов <*> ?


my $mess1 = $mess;
while ($mess1 =~ s|<(\\S+)>([^<>]*?)<\\/\\1>|$2|g) {};
print "Теги не закрыты или ошибка в тэгах"
  if (($mess1 =~ m|<\\S+>|) || ($mess1 =~ m|<\\/\\S+>|));

+
perldoc perlre :)
Название: Проверка тэгов в сообщении форума
Отправлено: Отец Никон от 09 Января 2003, 11:55:21
Благодарю, Chs.
Не мог бы ты разъяснить мне этот код? Я все-таки стараюсь сам врубаться, а не использовать шаблоны.
И ещё, можно ли как-то соделать, чтобы не считались за ошибку не требующие закрытия тэги? (,
и тд.)?
Название: Проверка тэгов в сообщении форума
Отправлено: Chs от 09 Января 2003, 12:00:31
Цитировать
Не мог бы ты разъяснить мне этот код?

А что непонятного?
Цитировать

И ещё, можно ли как-то соделать, чтобы не считались за ошибку не требующие закрытия тэги? (,
и тд.)?

Можно, все можно.:)
Название: Проверка тэгов в сообщении форума
Отправлено: Отец Никон от 10 Января 2003, 10:53:25
Цитировать
Можно, все можно.

Подскажи, как?
Название: Проверка тэгов в сообщении форума
Отправлено: Chs от 10 Января 2003, 11:04:21
Цитировать
Подскажи, как?

Убрать их в начале проверки.
Название: Проверка тэгов в сообщении форума
Отправлено: Отец Никон от 10 Января 2003, 11:26:31
Убрать-то их можно, а как потом назад вставлять?
Название: Проверка тэгов в сообщении форума
Отправлено: Chs от 10 Января 2003, 11:41:45
Цитировать
Убрать-то их можно, а как потом назад вставлять?

А зачем вставлять? Проще сообщение скопировать и провести деструктивную проверку.