Forum Webscript.Ru
Программирование => Perl => Тема начата: Отец Никон от 08 Января 2003, 21:29:03
-
Привет всем.
У меня такая задача: есть форум. И при отсылке сообщения
надо проверить, закрыты ли в нем все тэги.
Подскажите, пожалуйста, как
-
perldoc perlre
Теги какого вида?
Если [ x ] [ / x ], то примерно так
my $mess1 = $mess;
while ($mess1 =~ s|\\[(\\w)\\]([^\\[\\]]*?)\\[\\/\\1]|$2|g) {};
print "Теги не закрыты или ошибка в тэгах"
if (($mess1 =~ m|\\[\\w\\]|) || ($mess1 =~ m|\\[\\/\\w\\]|));
-
Спасибо, а можно как-то это приспособить и для тэгов <*> *>? Замена соответствующих символов в этом коде не помогает.
Извиняюсь, но я в рег. выр-я никак пока не въеду.
-
Спасибо, а можно как-то это приспособить и для тэгов <*> *>?
my $mess1 = $mess;
while ($mess1 =~ s|<(\\S+)>([^<>]*?)<\\/\\1>|$2|g) {};
print "Теги не закрыты или ошибка в тэгах"
if (($mess1 =~ m|<\\S+>|) || ($mess1 =~ m|<\\/\\S+>|));
+
perldoc perlre :)
-
Благодарю, Chs.
Не мог бы ты разъяснить мне этот код? Я все-таки стараюсь сам врубаться, а не использовать шаблоны.
И ещё, можно ли как-то соделать, чтобы не считались за ошибку не требующие закрытия тэги? (
,
и тд.)?
-
Не мог бы ты разъяснить мне этот код?
А что непонятного?
И ещё, можно ли как-то соделать, чтобы не считались за ошибку не требующие закрытия тэги? (
,
и тд.)?
Можно, все можно.:)
-
Можно, все можно.
Подскажи, как?
-
Подскажи, как?
Убрать их в начале проверки.
-
Убрать-то их можно, а как потом назад вставлять?
-
Убрать-то их можно, а как потом назад вставлять?
А зачем вставлять? Проще сообщение скопировать и провести деструктивную проверку.